我只是在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)
这是我想要的结果.
谁能解释一下这里发生了什么?这两种情况有什么区别?
当你输入
A = [
3
9
5
0];
Run Code Online (Sandbox Code Playgroud)
你创建一个列向量.因为Matlab迭代列,所以你会得到一个答案(第一列).通过转置它,你得到一个包含4列的行向量,因此每个有一列有4个答案.