How to fill a matrix with a condition?

조회 수: 3 (최근 30일)
Juraj
Juraj 2013년 12월 8일
댓글: sixwwwwww 2013년 12월 8일
Hello,
I want to make some plots, and for that I need a matrix of which every element corresponds to one point in the xy plane, so I have:
[x,y]=meshgrid(-35:.25:35);
[phi,rho]=cart2pol(x,y);
The way I normally do it is:
z(:,:)=<some function I want to plot which includes rho and phi>
This time I need a condition: for rho<=25 I want different function values than for 25<rho&&rho<35. How can this be done? I tried to use a loop:
if rho<=25
z(:,:)=<some function values>
else
z(:,:)=<some other values>
but that didn't work.
Thanks for the help.

채택된 답변

sixwwwwww
sixwwwwww 2013년 12월 8일
편집: sixwwwwww 2013년 12월 8일
try doing it like this:
[x, y] = meshgrid(-35:.25:35);
[phi, rho] = cart2pol(x, y);
z = zeros(size(x));
z(rho <= 25) = rho(rho <= 25) - phi(rho <= 25); % Here you can use your function 1
z(rho > 25) = rho(rho > 25) + phi(rho > 25); % Here you can use your function 2
mesh(x, y, z)
I hope it helps. Good luck!
  댓글 수: 2
Juraj
Juraj 2013년 12월 8일
Thanks a lot mate!
sixwwwwww
sixwwwwww 2013년 12월 8일
you are wlecome

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by