How to fill a matrix with a condition?

5 visualizaciones (últimos 30 días)
Juraj
Juraj el 8 de Dic. de 2013
Comentada: sixwwwwww el 8 de Dic. de 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.

Respuesta aceptada

sixwwwwww
sixwwwwww el 8 de Dic. de 2013
Editada: sixwwwwww el 8 de Dic. de 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 comentarios
Juraj
Juraj el 8 de Dic. de 2013
Thanks a lot mate!
sixwwwwww
sixwwwwww el 8 de Dic. de 2013
you are wlecome

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by