How to build matrix

조회 수: 2 (최근 30일)
Yulia
Yulia 2014년 3월 17일
댓글: Yulia 2014년 3월 17일
Dear all! I have the following problem. I have 4 values A,B,C,D each value has the size [3 x 1000]. A need to built matrix [A B; C D], which M [A(m,n) B(m,n); C(m,n) d(m,n)]. How to do it? NOw I have only the last result the code I have now :
if true
freq_points= 1000;
n = 3;
A = zeros(n,freq_points);
B = zeros(n,freq_points);
C = zeros(n,freq_points);
D = zeros(n,freq_points);
B = ones (n, freq_points);
for r =1:3
for la = 1:1:freq_points;
A(r,:) = exp(gamma(r,:).*d(r));
B(r,:) = 1;
C(r,:) = exp((-gamma(r,:)).*d(r))*(1/Z(r));
D(r,:) = -1/Z(r);
M = [A(r,la) B(r,la); C(r,la) D(r,la) ]
end;
end
  댓글 수: 2
dpb
dpb 2014년 3월 17일
First format your code so we can read it...keep at it until it looks right in the preview window.
Image Analyst
Image Analyst 2014년 3월 17일

댓글을 달려면 로그인하십시오.

답변 (2개)

Image Analyst
Image Analyst 2014년 3월 17일
Take M outside the loop and do
M = [A B; C D];
So M is only created after A, B, C, and D have finished being created.
  댓글 수: 1
Yulia
Yulia 2014년 3월 17일
in this case I have the answer with dimension[6:2000]. And it looks like :[A(1) A(2) A(3) D(1)D(2)D(3) ]

댓글을 달려면 로그인하십시오.


Yulia
Yulia 2014년 3월 17일
I decided to make like this:
if true
for r = 1:3
for la = 1:1:freq_points
A(r,:) = exp(gamma(r,:).*d(r));
B(r,:) = 1;
C(r,:) = exp((-gamma(r,:)).*d(r))*(1/Z(r));
D(r,:) = -1/Z(r);
%D(r) = [D(r)];
M = [A(r,la) B(r,la); C(r,la) D(r,la) ];
FG (:,:,la) = M;
end
But now I do not know how to save all this all the matrices for r=1, r=2, r=3. NOw i can have only r = 3

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by