首页 > 解决方案 > 将矩阵转换为单元格并将 NaN 替换为 '-'

问题描述

我有一个矩阵A

A = [nan nan 1 0 nan]

如何将矩阵转换A为单元格,并替换nan'-',因此新的B单元格数组将如下所示:

B = {'-' '-' 1 0 '-'}

我试过了

A = mat2cell(A);

或者

A = num2str(A);

然后

A(cellfun(@isNaN,A,'uniformoutput',false)) = {'-'};

这是行不通的。

标签: matlabmatrixnancell-array

解决方案


您的想法mat2cell很好,也许用法不清楚!?您也可以使用num2cell,这似乎更容易使用。此外,使用逻辑值进行索引 也适用于元胞数组,这可能比cellfun类似的更有效:

A = [nan nan 1 0 nan]

B = num2cell(A);
B(isnan(A)) = {'-'}

输出:

A =
   NaN   NaN     1     0   NaN

B =
{
  [1,1] = -
  [1,2] = -
  [1,3] =  1
  [1,4] = 0
  [1,5] = -
}

希望有帮助!


推荐阅读