Matlab 对于列向量与行向量上的循环

Matlab 对于列向量与行向量上的循环,matlab,for-loop,Matlab,For Loop,我刚刚在Matlab中编写了一个“类似foreach”的循环,遇到了这种奇怪的行为: 我有矩阵A: A = [ 3 9 5 0]; 我想在a上使用一个foreach循环(如上所述) 如果我这样写: for i = A disp('for') i end 结果将是: for i = 3 9 5 0 但当我使用转置时,结果会改变: for i = A' disp('for') i end

我刚刚在Matlab中编写了一个“类似foreach”的循环,遇到了这种奇怪的行为:

我有矩阵A:

A = [
 3
 9
 5
 0];
我想在a上使用一个
foreach
循环(如上所述)

如果我这样写:

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
这就是我想要的结果


有人能解释一下这里发生了什么吗?这两种情况的区别是什么?

在Matlab中,for循环在列上迭代

当你打字时

A = [
3
9
5
0];
创建一个列向量。因为Matlab在列上迭代,所以得到一个答案(第一列)。通过转置得到一个包含4列的行向量,因此每列有4个答案