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 Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by