MATLAB使用单元格数组中的元素填充矩阵

时间:2014-01-28 15:58:29

标签: matlab matrix double cell

我有一个矩阵,我想要放入矩阵的第三列,来自单元格数组的元素。我怎么能这样做?

这是我的意思的一个例子。 这是矩阵(E):

43.4350000000000    -88.5277780000000   NaN 733144
43.4350000000000    -88.5277780000000   NaN 733146
43.4350000000000    -88.5277780000000   NaN 733148
43.4350000000000    -88.5277780000000   NaN 733150

我想拿NaN列(第3列)并放入它,单元格数组(uID) 单元格数组如下所示:

'027-0007'
'079-0026'
'119-8001'
'133-0027'

我使用了这段代码:

E(:,3) = reshape(repmat(uID',length(all_dates),1),[],1)

将每行uID复制一定次数,然后将其重新整形为一列,使其与E列的大小相同。

然而,当我现在运行时,E是矩阵而uID是一个单元的事实导致MATLAB告诉我Conversion to double from cell is not possible=右侧的部分工作正常。这是将细胞元素放入E导致问题的原因。

2 个答案:

答案 0 :(得分:0)

单元格数组的内容不是数字,因此无法插入数值矩阵。您可以使用str2double将字符串单元格数组转换为数字数组,如下所示

 >> str2double({'3','17.5'})

ans =

    3.0000   17.5000

但这只是当单元格的字符串内容代表实际数字时,在您的情况下似乎不正确。

答案 1 :(得分:0)

您可以将数据插入另一个单元格

,而不是将数据插入到普通矩阵中
  Ecell=num2cell(E); 
  Ecell(:,3)=uID;