7

我只是在 Matlab 中编写了一个“kinda-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

这就是我想要的结果。

谁能解释这里发生了什么?这两种情况有什么区别?

4

2 回答 2

6

当你输入

A = [
3
9
5
0];

您创建一个列向量。因为 Matlab 对列进行迭代,所以您会得到一个答案(第一列)。通过转置它,您会得到一个包含 4 列的行向量,因此每列有 4 个答案。

于 2013-07-31T09:51:05.447 回答
5

在 Matlab 中,for循环遍历列。http://www.mathworks.es/es/help/matlab/ref/for.html

于 2013-07-31T09:47:44.457 回答