我很努力将包含星号('*')的字符数组转换为数字双精度。在MATLAB中将包含星号的字符数组转换为数字
我有一个基于从.dat文件导入的数据的字符向量的单元数组。例如,单元阵列C包含细胞(例如,C{1,1}, C{2,1}, ... C{n,1}),其每一个包含字符向量,例如,C{1,1}包含的列:
'23.000 * * 1.000 1.000 1.000 34.000 5.065 6.719'
当我尝试C{1,1}转换为数字双,MATLAB返回一个空双,例如,
new_double = str2num(C{1,1})
new_double =
[]
当我手动删除星号,代码工作:
new_double = str2num(C{1,1})
new_double =
23.0000 1.0000 1.0000 1.0000 34.0000 5.0650 6.7190
我想要做的就是将数据读取到一个双数组中进行进一步处理。我不在乎命令是否忽略星号或用NaN替换它们 - 带星号的数据对我来说并不重要。重要的是我读取最后两列的数据,例如5.065 6.71。不幸的是,我不能将它们编入索引,因为它们被嵌入到一个字符向量中。
我一直在使用也尝试:
c2 = C{1,1};
new_double = sscanf(c2,'%f%');
但它在星号停止读取,例如,
new_double =
23