我想在MATLAB知道如何完成以下任務:用於在Matlab存儲值循環(標量倍矢量陣列)
如果我有一個for循環像在下面的行:
b=[1 2 3 4];
for i=1:1:10
x=i.*b
end
該代碼重複i乘以標量乘以向量b;但如果我爲了存儲每次迭代的結果向量而放入for循環x(i),我就不會得到我要找的東西。我正在爲lookig是讓:
x(1)=[1 2 3 4]
x(2)=[2 4 6 8]
... and so on
我想在MATLAB知道如何完成以下任務:用於在Matlab存儲值循環(標量倍矢量陣列)
如果我有一個for循環像在下面的行:
b=[1 2 3 4];
for i=1:1:10
x=i.*b
end
該代碼重複i乘以標量乘以向量b;但如果我爲了存儲每次迭代的結果向量而放入for循環x(i),我就不會得到我要找的東西。我正在爲lookig是讓:
x(1)=[1 2 3 4]
x(2)=[2 4 6 8]
... and so on
正如在P0W的回答中,您需要一個二維矩陣來存儲「矢量矢量」。您不能使用x(n)
,因爲地址是一維矩陣中的單個值。
另一種解決方案,可能更接近你想要的,是使用單元格數組,它允許創建一個包含混合類型值的矩陣(所以你也可以把矢量!)。他們十分相似,規則排列,但是你需要花括號:
b=[1 2 3 4];
x = cell(1,10); % preallocating, not necessary but always a good idea
for i = 1:10
x{i} = i*b % notice the curly bracket with the index
end
注意:您不需要.*
運營商,因爲是一個標量矩陣乘法。
你可以回到你的價值觀與
x{1} = [1 2 3 4] % again curly brackets
x{2} = [2 4 6 8]
...
可以使用:
x=[1:10]'*b
然後
x(1,:)
x(2,:)
等