Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Creation of matrix from loop

조회 수: 1 (최근 30일)
Renjith V Ravi
Renjith V Ravi 2016년 9월 17일
마감: MATLAB Answer Bot 2021년 8월 20일
The following is a code for creation of matrix using for loop
for r = 1:256;
for c=1:256;
m(r,c) = (r+c)^2;
end;
end;
disp(m)
In m(r,c) = (r+c)^2; Suppose, if there are two or more equations like (r+c)^2 and (2r-c)^2 and (r+3c) ,I want to get m(r1,c1)=(r+c)^2 and m(r2,c2)=(2r-c)^2 and m(r3,c2)=(r+3c) and again m(r4,c4)=(r+c)^2 and m(r5,c5)=(2r-c)^2 and ...... etc upto m(r256,c256).

답변 (1개)

Star Strider
Star Strider 2016년 9월 17일
I am not certain what you want to do, and you do not say what ‘(r2,c2)’ and the rest are, or what you want to do with them.
You can eliminate the loop with meshgrid:
r = 1:256;
c = 1:256;
[R,C] = meshgrid(r,c);
m = (R + C).^2;
figure(1)
meshc(R, C, m)
grid on
xlabel('\bf\itr')
ylabel('\bf\itc')
zlabel('\bf\itm')
  댓글 수: 4
Renjith V Ravi
Renjith V Ravi 2016년 9월 17일
Yes, But m = (R+C).^2 . I just want to merge r and c to form a matrix of size 256x256
Star Strider
Star Strider 2016년 9월 17일
My code does exactly that, without the loop.
Run my code and compare the figure it produces (in figure(1)) with the figure your code produces (in figure(2)):
for r = 1:256;
for c=1:256;
m(r,c) = (r+c)^2;
end;
end;
figure(2)
meshc(m)
grid on
The result is the same, the only difference being that my code is more efficient and easier to work with.

Community Treasure Hunt

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

Start Hunting!

Translated by