从文本文件matlab读取时将单元格转换为双值
我试图从文件中读取数据,但我无法将格式从单元格更改为双精度格式,有人能帮我吗 我写的代码是:从文本文件matlab读取时将单元格转换为双值,matlab,Matlab,我试图从文件中读取数据,但我无法将格式从单元格更改为双精度格式,有人能帮我吗 我写的代码是: fid=fopen(filename); tline = fgetl(fid); while ischar(tline) temp = strsplit(tline);% temp should be array holding double values. end 文件示例(仅一行): 非常感谢,你能用吗 将单元格数组转换为与原始单元格数组中的值格式相同的矩阵 根据上面链接提供的示例: c
fid=fopen(filename);
tline = fgetl(fid);
while ischar(tline)
temp = strsplit(tline);% temp should be array holding double values.
end
文件示例(仅一行):
非常感谢,你能用吗
将单元格数组转换为与原始单元格数组中的值格式相同的矩阵
根据上面链接提供的示例:
c = {[1], [2, 3, 4];
[5; 9], [6, 7, 8; 10, 11, 12]};
m = cell2mat(c)
m =
1 2 3 4
5 6 7 8
9 10 11 12
我想您只是在寻找
str2num
假设您有一个包含两行数字的单元格,以字符串格式存储:
c={'0.0000000e+00 4.1800000e+01 4.4800000e+01';
'0.0000000e+00 4.1800000e+01 4.4800000e+01'}
现在,您可以从第一行获得数字,如下所示:
d=str2num(c{1})
这假定已成功读入。否则,查看
doc dlmread
这可能不起作用,因为单元格中不包含数字(而是表示数字的字符串)。我可能错了,但据我记忆所及,cell2mat()
会将表示为字符串的任何数字转换为数字。因此,生成的矩阵是数字矩阵。如果单元格中包含字母,那么是的,它将失败。感谢Kkuilla的回答,但我以前尝试过,但它不起作用。感谢Dennis的回答,但它与d=str2num(c)一起工作。
d=str2num(c{1})