2013-03-14 89 views
0

如果我有一個由12乘以27的矩陣,那麼有些元素是空的。像這樣,[]用-1替換矩陣中的空元素的最佳方法是什麼? MATLAB

我試圖取代任何元素[]爲-1。

這樣做的最好方法是什麼?

+0

它是一個矩陣或單元陣列?我從來沒有見過這樣的矩陣,不要以爲它是可能的 – 2013-03-14 22:27:41

+0

呃可能是一個數組,然後 – Tofurkey 2013-03-14 22:28:57

+1

可能的重複http://stackoverflow.com/questions/3400515/how-do-i-detect-empty-cells -in-a-cell-array和http://stackoverflow.com/questions/2624016/replace-empty-cells-with-logical-0s-before-cell2mat-in-matlab – gevang 2013-03-14 22:39:41

回答

7

我假設你正在談論一個單元陣列。

在這種情況下,最簡單的是:

%# create some sample data 
C = {1,2,[];3,[],99}; 

%# replace empty elements with -1 
[C{cellfun(@isempty,C)}] = deal(-1); 

%# or, simpler (thanks @EitanT) 
C(cellfun(@isempty,C)) = {-1}; 


%# just in case you want to turn C into a numeric array 
numericC = cell2mat(C); 
+1

你也可以這樣做:'C(cellfun (@ isempty,C))= {-1}'沒有'deal'。 – 2013-03-17 14:56:35

+0

@EitanT:確實。感謝您的提醒! – Jonas 2013-03-17 16:19:07

相關問題