【发布时间】:2016-12-06 11:50:55
【问题描述】:
我正在读取一个 excel 文件。在其中一列(仅包含很长的数字)中,MATLAB 将其作为 CELL 导入(因为有一个标题)。
这是导入的示例:
'980000684210053338'
这些是我的尝试:
转换为 DOUBLE 但数字发生变化tableM.v1 = cellfun(@str2num,tableM.v1);
转换为 DOUBLE 但数字发生变化tableM.v1 = cellfun(@str2double,tableM.v1);
转换为 CHAR 但数字正确tableM.v1 = cell2mat(tableM.v1);
如何在保持正确值的同时将此 CELL 转换为 DOUBLE?
谢谢
附:我正在使用 MATLAB R2016a。
更新:
我从答案中运行了这段代码:tableM.v1 = vpa(tableM.v1); % assuming tableM.v1 is a cellstr
我收到了这个错误:
警告:支持不是有效变量名的字符串或 定义一个数字将在未来的版本中删除。创造 符号表达式,首先创建符号变量,然后 对它们使用操作。
在 sym>convertExpression(第 1536 行)
在 sym>convertChar(第 1441 行)
在 sym>tomupad(第 1198 行)
在 sym(第 177 行)
在 cell2sym 中(第 28 行)
在 sym>tomupad(第 1208 行)
在 sym(第 177 行)
在 vpa 中(第 44 行)
使用 symengine 时出错
新数组必须具有与原始数组相同数量的元素 数组。sym/reshape 错误(第 50 行)
ySym = mupadmex('symobj::reshape',x.s,args{:});cell2sym 中的错误(第 34 行)
S = reshape(sym([Csym{:}]), size(C));符号错误>tomupad(第 1208 行)
xsym = cell2sym(x);符号错误(第 177 行)
S.s = tomupad(x);vpa 中的错误(第 44 行)
ss = sym(s);
【问题讨论】:
标签: excel matlab char double cell