Nested loop code to fill a 10x100 matrix

Hi all,
I'm pretty stuck on this one; I want to fill a 10x100 matrix as: A =
[1 2 3 . . .100
101 102 103 .
201 202 203 .
. . .
. . .
901 . . . . 1000]
Since I want to make use of for loops, I've made the following code:
u=10;
v=100;
A=zeros(u,v);
for m=1:u;
for n=1:v;
A(m,n)= ....
end
end
I manage to get the first row going from 1 to 100, but I can't seem to get the second row (and so on) to start with A(1,1)+m*100. I can guess that the problem is in the first loop, but I just can't seem to solve it. Anyone here who can help me getting the right code for A(m,n)=....? Or am I doing it completely wrong in the first place?
Thank you!

1 Comment

Do you have to use loops because this is a homework assignment?

Sign in to comment.

 Accepted Answer

Jan
Jan on 15 Sep 2017
You are almost there: All you have to do is to set the element to 100*(m-1) + n.
Sorry for solving your homework, if it is one. Note that your teacher knows this forum also. But you have shown your effort and asked clearly.

1 Comment

Thank you very much, I see why I could not think of the right answer in the first place now. Hopefully this will help me in future problems.

Sign in to comment.

More Answers (2)

out = (1:100) + (0:100:900)'
for older version of MATLAB:
out = bsxfun(@plus,1:100,(0:100:900)')

1 Comment

Jan
Jan on 15 Sep 2017
Edited: Jan on 16 Sep 2017
Note: See this example https://www.mathworks.com/matlabcentral/answers/356103-euclidean-distance-ed-calculation-in-matlab#answer_281678: The function is 10% faster with bsxfun compared to auto-expansion in R2016b. The auto-expansion is nice, but I have the impression, that the implementation is much less efficient than bsxfun.

Sign in to comment.

Categories

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

Asked:

on 15 Sep 2017

Edited:

Jan
on 16 Sep 2017

Community Treasure Hunt

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

Start Hunting!