2011-10-24 44 views
1

如果我有一個矩陣,例如這樣的:MatLab,如何按升序組織行,但忽略零值?

A=[ 8 3 67 8 2 0 0 0 0 0; 8 76 9 233 1 89 34 0 0 0; 98 23 87 9 3 24 64 45 1 0] 

我用的命令排序(A,2)將排序的列旁邊,但在同一時間推零向前。我想在代碼中保持0到最後的計算目的。

我一直在尋找一個這樣做的命令,因爲我覺得有一個。 我一般也一直在嘗試排序,翻轉和轉置以獲得我想要的,但是我處於僵局。

+0

在這個問題中提供了替代解決方案和基準測試:http://stackoverflow.com/questions/16882130/sort-in-ascending-order-but-keep-zeros-at-last? –

回答

6

您可以將0替換爲Inf,然後進行排序並在排序之後再次用0替換Inf

+0

這是否意味着我將字符串值替換爲0的所有數值?哇,我不會想到用字符串替換0。所以我最終做的是這樣的A(A == 0)= Inf,它的工作原理!謝謝! – Abid

+2

'Inf'不是一個字符串。這是一個代表無限的數字。 – Xyand