我只是在Matlab中编写了一个“kinda-foreach”循环并遇到了这种奇怪的行为:
我有矩阵A:
A = [
3
9
5
0];
我希望在A上使用foreach
循环(如here所述)。
如果我写这个:
for i = A
disp('for')
i
end
结果将是:
for
i =
3
9
5
0
但是当我使用转置时,结果会改变:
for i = A'
disp('for')
i
end
结果:
for
i =
3
for
i =
9
for
i =
5
for
i =
0
我想要的结果是什么。
有人可以解释这里发生了什么吗?这两种情况有什么区别?
答案 0 :(得分:6)
A = [
3
9
5
0];
您创建一个列向量。因为Matlab迭代列,所以你会得到一个答案(第一列)。通过转置它,你会得到一个包含4列的行向量,因此每个列有4个答案。
答案 1 :(得分:5)
在Matlab中,for
循环遍历列。 http://www.mathworks.es/es/help/matlab/ref/for.html