用-1替换矩阵中的空元素的最佳方法是什么?MATLAB

用-1替换矩阵中的空元素的最佳方法是什么?MATLAB,matlab,replace,Matlab,Replace,如果我有一个27乘12的矩阵,有些元素是空的。像这样,[] 我试图替换[]到-1的任何元素 做这件事的最佳方法是什么?我假设您谈论的是一个单元阵列 在这种情况下,最简单的方法是: %# 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(cell

如果我有一个27乘12的矩阵,有些元素是空的。像这样,[]

我试图替换[]到-1的任何元素


做这件事的最佳方法是什么?

我假设您谈论的是一个单元阵列

在这种情况下,最简单的方法是:

%# 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);

它是矩阵还是单元阵列?我从来没有见过这样的矩阵,也不知道它是可能的,可能是一个数组,然后可能是重复的,你也可以这样做:
C(cellfun(@isempty,C))={-1}
而不
deal
@EitanT:确实如此。谢谢你的提醒!