1
a=[1 2 3 4
5 6 7 8
8 7 6 5
4 3 2 1]
for i=(1:4)
b=(a(i,:));
c=sort(b,2)
end
請,我怎樣才能獲得這個迭代在單個陣列中的結果(4×4),而不是讓C的結果=排序(B, 2)分別爲每個循環。我怎麼把結果從一個迭代到一個數組在MATLAB
a=[1 2 3 4
5 6 7 8
8 7 6 5
4 3 2 1]
for i=(1:4)
b=(a(i,:));
c=sort(b,2)
end
請,我怎樣才能獲得這個迭代在單個陣列中的結果(4×4),而不是讓C的結果=排序(B, 2)分別爲每個循環。我怎麼把結果從一個迭代到一個數組在MATLAB
你根本不需要使用循環!您正在嘗試對每一行中的列進行排序。這可以通過向sort
提供可選參數來實現。
c=sort(a,2);
c=
1 2 3 4
5 6 7 8
5 6 7 8
1 2 3 4
應該給你你需要的東西。參數2
告訴sort
按列排序a
。如果你想按行排序,你會使用c=sort(a,1)
對不起,我只使用這個示例代碼作爲說明。我實際上擁有的是比這更復雜的,'我認爲'它必須處於循環中。我的問題仍然是如何在1000次迭代後將結果放入數組中? – godson 2011-03-29 23:59:01
好吧,如果你必須使用一個循環,那麼通過'c = zeros(size(a));'將'c'預先分配給'a'的大小。然後在循環中填入'c'的每一行,如下所示:'c(i,:)= sort(b,2);' – abcd 2011-03-30 00:04:56
好的,非常感謝。 – godson 2011-03-30 19:03:11