기본적으로 복사하는 함수를 작성하려고합니다 : [z;-z]
z = randn(m,n)
m-by-n 무작위 항목의 매트릭스. 나는 아래에있는 randn 함수 C++에서 함수를 만들 수 있었다 :Matlab 연산 [z; z]를 수행하는 함수를 C++에서 작성합니다. 여기서 z는 행렬 또는 벡터입니다.
MatrixXd generateGaussianNoise(int n, int m){
MatrixXd M(n,m);
normal_distribution<double> nd(0.0, 1.0);
random_device rd;
mt19937 gen(rd());
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
M(i,j) = nd(gen);
}
}
return M;
}
지금 나는 [z;-z]
기능을 작성해야합니다. 예를 들어 다음 출력이됩니다의이 z = randn(2,2)
을 가정 해 봅시다 :
-2.2588 0.3188
0.8622 -1.3077
을 지금은 [z;-z]
을 쓸 때 우리가 얻을 :
-2.2588 0.3188
0.8622 -1.3077
2.2588 -0.3188
-0.8622 1.3077
내가 행렬 또는 벡터 z
가게에서 찍은 기능을 만드는 생각하고 해당 항목을 다른 행렬 또는 벡터에 배치 한 다음 관련 항목을 올바른 (i,j)
위치에 배치하기 위해 크기가 두 배로 된 새 행렬 또는 벡터를 만듭니다.
진행 방법을 잘 모르겠습니다. 모든 의견이나 제안은 대단히 감사하겠습니다. 부수적으로, 나는 C++의 초심자이다.
코드는 내 대답과 같을 것이다. 연결없이 직접 출력을 계산하므로 응답에 적합하지 않습니다. 원래 게시물의 코드를 연결하려면 자체 게시물을 사용해야합니다. – anatolyg
@anatolyg 아, 그 한 줄을 지우는 걸 잊었 네. 간단히 말해 데이터를 채우기 위해 빌린 것입니다. 업데이트되었습니다. – Suever
두 번째 부분 (행렬을 수직으로 연결)과 약간 혼동되어 있습니다. 왜 행이 두 배가되고 열이 아닌가? 예제에서 2 x 2 행렬은 4 x 4가되므로 행과 열 모두가 두 배가됩니다. – Scooby