Matlab cell2mat错误:输入单元格数组的所有内容必须具有相同的数据类型

Matlab cell2mat错误:输入单元格数组的所有内容必须具有相同的数据类型,matlab,Matlab,我试图将cell2mat函数应用于由空字符串或整数字符串组成的单元格。我得到这个错误,告诉我单元格的内容并非都是相同的数据类型,即使当我对一个带有空字符串的索引和一个带有整数sting的索引运行“iscellstr”时,两者都返回1表示true。还有什么可能导致此错误?请尝试使用而不是cell2mat 您可能有空单元格[],而不是空字符串' 例如: >> M = {'123'; ''; []; '-2'} M = '123' '' [] '-2'

我试图将cell2mat函数应用于由空字符串或整数字符串组成的单元格。我得到这个错误,告诉我单元格的内容并非都是相同的数据类型,即使当我对一个带有空字符串的索引和一个带有整数sting的索引运行“iscellstr”时,两者都返回1表示true。还有什么可能导致此错误?

请尝试使用而不是cell2mat

您可能有空单元格
[]
,而不是空字符串
'

例如:

>> M = {'123'; ''; []; '-2'}

M = 

    '123'
    ''
    []
    '-2'
请注意,有空单元格和空字符串
cell2mat
引发此错误:

>> cell2mat(M)
Error using cell2mat (line 46)
All contents of the input cell array must be of the same data type.
但是
str2double
返回以下内容:

>> str2double(M)

ans =

   123
   NaN
   NaN
    -2

是的,我想这是我的问题。有没有一种快速的方法可以将所有的空单元格变成空字符串?当然,只要这样做:
M(cellfun(@isempty,M))={'}
谢谢!工作得很有魅力!