How do i use a pair of nested for loops to store a series of 9 related numbers in a 3x3 matrix?

1 次查看(过去 30 天)
the outer loop decides what row and the inner loop decides what column to store each number in the series, the code should prompt the user for the starting number and increment of the series
  5 个评论
Sarah Mcmillan
Sarah Mcmillan 2018-9-6
编辑:James Tursa 2018-9-6
I'm sorry for the confusion, I'm just frustrated. I am trying to do a pair of nested loops so that I can just denote a as the number I want to start with and b the number I want to continuously add. In the end I want my matrix to look like
[1, 2, 3;
4, 5, 6;
7, 8, 9]
for the case that a=1 and b=1, but I want to be able to change a and b to any numbers if I chose to do so.
Right now I have the matrix
[2, 3, 4;
3, 4 , 5;
4, 5 , 6]
as you can see the rows are adding by 1 but the columns are not continuing the counting, they add 1 to the number above it. I need help to figure out so that it continues the counting not whatever its doing now.

请先登录,再进行评论。

回答(2 个)

Dennis
Dennis 2018-9-6
I hope i got the question right (some possible solutions with increasing number of loops):
%no loop
a=1;
b=1;
X=ones(1,9)*a;
Y=ones(1,8)*b;
Y=cumsum(Y);
X(2:end)=X(2:end)+Y;
X=reshape(X,[],3)';
%1 loop
a=1;
b=1;
X=ones(1,9)*a;
for i=1:numel(X)
X(i)=X(i)+(i-1)*b;
end
X=reshape(X,[],3)';
%2 loops
a=1;
b=1;
X=ones(3,3)*a;
for i=1:3
for k=1:3
X(i,k)=a+(i*k-1)*b;
end
end

Stephen23
Stephen23 2018-9-6
编辑:Stephen23 2018-9-6
"How do i use a pair of nested for loops to store a series of 9 related numbers in a 3x3 matrix?"
num = str2double(input('start number: ','s'));
nrows = 3;
ncols = 3;
mat = nan(nrows,ncols);
for kr = 1:nrows
for kc = 1:ncols
mat(kr,kc) = num;
num = num+1;
end
end
And when run:
start number: 1
>> mat
mat =
1 2 3
4 5 6
7 8 9

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by