How to fill a matrix with a condition?

11 vues (au cours des 30 derniers jours)
Juraj
Juraj le 8 Déc 2013
Commenté : sixwwwwww le 8 Déc 2013
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.

Réponse acceptée

sixwwwwww
sixwwwwww le 8 Déc 2013
Modifié(e) : sixwwwwww le 8 Déc 2013
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 commentaires
Juraj
Juraj le 8 Déc 2013
Thanks a lot mate!
sixwwwwww
sixwwwwww le 8 Déc 2013
you are wlecome

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by