需要在 Matlab 中重置计数器变量
Need to reset a counter variable in Matlab
好的,所以我需要使用下面的 for 循环创建一个数组
[13 14 15]
[10 11 12]
[7 8 9]
[4 5 6]
[1 2 3]
这是我目前所拥有的。它可以工作,但功能可能更漂亮
clc
clear all
m=1;
i=0;
for m=1:15
i=i+1;
if m<=3
matrix(5,i)=m;
end
if m>3 && m<=6
matrix(4,i-3)=m;
end
if m>6 && m<=9
matrix(3,i-6)=m;
end
if m>9 && m<=12
matrix(2,i-9)=m;
end
if m>12 && m<=15
matrix(1,i-12)=m;
end
end
我想通过使用另一个从 1 到 3 无限计数并通过不同参数终止的 for 循环来摆脱 i-12 等?
摆弄这个有一段时间了。
如有任何帮助,我们将不胜感激!
您可以(并且应该!)完全跳过循环:
flipud(reshape(1:15, 3, 5)')
基于循环的解决方案可能希望使用 嵌套 循环来保持您的 i
变量重置。之后我们有几个选择。但是,如果您使用循环,请始终记住为 matrix
:
预分配内存
索引到预先计算的数字向量中:
k = 1:15;
n = 1;
matrix = zeros(5,3);
for m = 5:-1:1
for i = 1:3
matrix(m,i) = k(n);
n = n+1;
end
end
或者使用一些算术技巧:
matrix = zeros(5,3);
for m = 1:5
for i = 1:3
matrix(m,i) = (5-m)*3 +i;
end
end
好的,所以我需要使用下面的 for 循环创建一个数组
[13 14 15]
[10 11 12]
[7 8 9]
[4 5 6]
[1 2 3]
这是我目前所拥有的。它可以工作,但功能可能更漂亮
clc
clear all
m=1;
i=0;
for m=1:15
i=i+1;
if m<=3
matrix(5,i)=m;
end
if m>3 && m<=6
matrix(4,i-3)=m;
end
if m>6 && m<=9
matrix(3,i-6)=m;
end
if m>9 && m<=12
matrix(2,i-9)=m;
end
if m>12 && m<=15
matrix(1,i-12)=m;
end
end
我想通过使用另一个从 1 到 3 无限计数并通过不同参数终止的 for 循环来摆脱 i-12 等?
摆弄这个有一段时间了。 如有任何帮助,我们将不胜感激!
您可以(并且应该!)完全跳过循环:
flipud(reshape(1:15, 3, 5)')
基于循环的解决方案可能希望使用 嵌套 循环来保持您的 i
变量重置。之后我们有几个选择。但是,如果您使用循环,请始终记住为 matrix
:
索引到预先计算的数字向量中:
k = 1:15;
n = 1;
matrix = zeros(5,3);
for m = 5:-1:1
for i = 1:3
matrix(m,i) = k(n);
n = n+1;
end
end
或者使用一些算术技巧:
matrix = zeros(5,3);
for m = 1:5
for i = 1:3
matrix(m,i) = (5-m)*3 +i;
end
end