writing a matrix without loop

Dear all I want to write a matrix that its arrays are dependent on i and j, could I write it without writing loops. my arrays are something like it a(i,j)=sin(2*pi*(i-1))/((sin(2*pi*(i-1))+sin(2*pi*(j-1))))). Thanks

 Respuesta aceptada

Image Analyst
Image Analyst el 23 de Dic. de 2012

2 votos

Use meshgrid:
m = 0:20;
n = 0:4;
[x y] = meshgrid(m, n);
a = sin(2*pi*y) ./ ((sin(2*pi*y) + sin(2*pi*x)))
imagesc(a);
set(gca, 'ydir', 'reverse');

3 comentarios

ss
ss el 26 de Dic. de 2012
Image Analyst thanks for your useful response, but what should we do if a(i,j)=x(j)*(i-1) that x is a vector? thank you again
Image Analyst
Image Analyst el 26 de Dic. de 2012
x = randi(9, [8 1]) % Random, sample data.
iMinus1 = 0:11
a = x * iMinus1
ss
ss el 26 de Dic. de 2012
thanks for your fast and useful response

Iniciar sesión para comentar.

Más respuestas (1)

Laura Proctor
Laura Proctor el 23 de Dic. de 2012

1 voto

Yes, you can create this matrix without using a loop. Use array based mathematical expressions such as ./ and .*
a = sin(2*pi*(ii-1))./(sin(2*pi*(ii-1))+sin(2*pi*(jj-1)));

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

ss
el 23 de Dic. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by