我有一个矩阵,我想要放入矩阵的第三列,来自单元格数组的元素。我怎么能这样做?
这是我的意思的一个例子。 这是矩阵(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导致问题的原因。
答案 0 :(得分:0)
单元格数组的内容不是数字,因此无法插入数值矩阵。您可以使用str2double将字符串单元格数组转换为数字数组,如下所示
>> str2double({'3','17.5'})
ans =
3.0000 17.5000
但这只是当单元格的字符串内容代表实际数字时,在您的情况下似乎不正确。
答案 1 :(得分:0)
您可以将数据插入另一个单元格
,而不是将数据插入到普通矩阵中 Ecell=num2cell(E);
Ecell(:,3)=uID;