FOR循环列向量与行向量

Mah*_*00d 7 matlab for-loop

我只是在Matlab中编写了一个"kinda-foreach"循环并遇到了这种奇怪的行为:

我有矩阵A:

A = [
 3
 9
 5
 0];
Run Code Online (Sandbox Code Playgroud)

我想用一个foreach循环(如解释这里的A.)

如果我写这个:

for i = A
     disp('for')
     i    
end
Run Code Online (Sandbox Code Playgroud)

结果将是:

for

i =

     3
     9
     5
     0
Run Code Online (Sandbox Code Playgroud)

但是当我使用转置时,结果会改变:

for i = A'
     disp('for')
     i    
end
Run Code Online (Sandbox Code Playgroud)

结果:

for

i =

     3

for

i =

     9

for

i =

     5

for

i =

     0
Run Code Online (Sandbox Code Playgroud)

这是我想要的结果.

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

ipa*_*ipa 6

当你输入

A = [
3
9
5
0];
Run Code Online (Sandbox Code Playgroud)

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