2013-09-16 187 views
0

我有以下代碼:保存矩陣在for循環MATLAB

for c=1:10; 
D = maximin(n2,n1,'euclidean'); 
M = min(D,[],2); ; 
C=[D M]; 
[maxValue, rowIdx] = max(C(:,end),[],1); %max value and the row index 
n1(end+1,:) = n2(rowIdx,:); %Copy selected row to bottom of n1 
n2(rowIdx,:) = []; %Delete the row from n2 that has the maximin 
c=c+1; 
end 

n1爲50 * 80和n2爲100 * 80在第一次迭代n1的端= 51 * 80且N 2 = 49 * 80等等。我需要在每次迭代結束時看到保存n1,以便我可以使用n1(1)... n1(10)進行進一步計算。請幫忙。我試過以下

B = cell(1, c); B(n) = n1(1, c+1); and 
B{n} = n1; 

沒有幫助。很感謝任何形式的幫助。

感謝

+0

你得到了什麼錯誤信息?你在循環中放置第二塊代碼的位置? – kkuilla

+0

我把它放在「c = c + 1」語句的正上方。我在使用B {n}時沒有遇到錯誤,而是得到一個1 * 10的矩陣,其中每個單元由n(n1..n10,10個單元)組成。它像整個n1矩陣在B {n}的一個單元中 –

回答

1

循環之前,您應該預先分配B如下:

B = cell(10, 1); 

,並在每次循環你B存儲n1像這樣:

B{c} = n1; 

然後你可以訪問n1使用相同的語法計算任何迭代。例如,在第三次迭代中計算的矩陣n1B{3}

+1

這很完美!非常感謝你 –

+0

對不起,它不讓我upvote :(我有另一個外部循環k = 50,100和150.我爲k = 50,100.150每個生成10個值。是否可以表示B {c} {k}? –