2013-09-05 101 views
0

我想在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 

回答

1

正如在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] 
... 
0

可以使用:

x=[1:10]'*b

然後

x(1,:)

x(2,:)