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

 Accepted Answer

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 Comments

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
x = randi(9, [8 1]) % Random, sample data.
iMinus1 = 0:11
a = x * iMinus1
thanks for your fast and useful response

Sign in to comment.

More Answers (1)

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)));

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

ss
on 23 Dec 2012

Community Treasure Hunt

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

Start Hunting!