我現在遇到了Matlab的一些麻煩。我目前正試圖從一個大型Cell Array中移除所有的NaN,我有3806 x 122.我一直在尋找類似問題的解決方案,並且我想出了。當我嘗試清除NaN時,Cellfun正在重新排序我的矩陣
data(cellfun(@(x) any(isnan(x(:))), data)) = [];
我的基質是一種奇怪的,因爲它看起來像這樣
(ex).
1 2 3 4 5 5 NaN
6 5 2 5 6 7 NaN
2 3 4 5 6 7 NaN
NaN NaN NaN NaN NaN NaN NaN
我的問題是,當我申請的上述代碼行到我的陣列我得到的這個沒有NaN的輸出。
1 2 3 4 5 5 6 5 2 5 6 7 2 3 4 5 6 7 etc...
我不明白它爲什麼這樣做。我也必須小心刪除列,因爲每列都有相應的標題,我不想混淆它們。如果我能以某種方式索引哪些列和行具有NaN,那將會很有幫助,所以我可以用它們刪除相應的標題。
最後,我想把標題和數據放到一個看起來像這樣的數據集結構中。
(ex).
'title1' 'title2' 'title3' 'title4' 'title5' 'title6'
1 2 3 4 5 5
6 5 2 5 6 7
2 3 4 5 6 7
任何幫助,非常感謝。
問候, 喬納森
'NaN'會一直在最後一行和最後一列,還是它們四處蔓延?有數字和'Nan'的行/列(除了最後一行/列)? –
Robert,NaN的絕大多數都位於陣列的底部和側面,就像上面顯示的那樣,但NaN的一些列分散在整個數據中。 –