2016-10-28 83 views
0

我想在一個循環中收集的數據收集不同維數據,例如在一個循環中

for k = 1:10 
    A=magic(randi(5)); 
    ... 
end 

現在我想收集一種用於每次迭代的數據。 謝謝。

+0

您想在每次迭代時如何存儲'A'?在3D矩陣中?單元陣列?結構?更具體地說明你想如何保存數據。 – rayryeng

+0

我試圖將它保存在矩陣或單元陣列中,但我不能。我認爲一個動態的結構可以解決它,但不知道如何填補它。 –

回答

1

有很多方法可以保存這些數據並將其存儲在一個變量中。因爲您的數據在每次迭代時可能會有所不同,您可以選擇單元陣列或結構來保存數據。

如果您選擇使用一個單元陣列,像這樣可以工作:

k = 10; 
A = cell(k, 1); 
for idx = 1 : k 
    A{idx} = magic(randi(5)); 
end 

我們創造k元素的空單元陣列,我們在每次循環填充每個細胞。使用A{i}將訪問迭代i中的數據。您也可以選擇使用一個結構,其中每個字段都是基於迭代編號的字符串。像這樣的東西可以工作:

k = 10; 
A = struct(); 
for idx = 1 : k 
    A.(['data' num2str(idx)]) = magic(randi(5)); 
end 

這將創建結構A其中,每個字段是一個迭代的數據k領域。您可以通過做A.datai訪問迭代i的數據。