我写了一个简单的for循环:
>> for m=1:3
p=m;
end
>> whos
Name Size Bytes Class
m 1x1 8 double array
p 1x1 8 double array
但是当我尝试为一个范围创建一个相同类的数据类型并检查你现在存储的变量不是1x1大小时:
>> k=1:256;
>> whos
Name Size Bytes Class
k 1x256 2048 double array
m 1x1 8 double array
p 1x1 8 double array
为什么m和k的变量大小之间存在差异?如果我理解正确1x1大小(变量'm')意味着它是1x1顺序的矩阵。那么为什么k变成1x256顺序?
答案 0 :(得分:1)
问题是因为您将k
声明为256元素向量。 :
运算符创建了一个向量,例如
a = 1:5
a == [1, 2, 3, 4, 5]
与m
一样,你在for循环中创建它,它的工作方式不同。 m
的值从1到3循环(即它们遍历向量[1,2,3]
),但在任何一个点m
只是一个标量(在循环结束时它有一个标量)值3)因此,你m
是1x1。
所以,如果你以相反的方式做到这一点,那么你将得到:
for k = 1:256
为您提供1x1 k
但
m = 1:3
将为m
(m == [1,2,3]
)