【发布时间】:2015-06-18 03:18:54
【问题描述】:
在matlab中读取“1.2D+02 3.23D+01 ....”的数据文件时,以下工作正常;
tempvs = textscan ( input_unit, '%f', N );
tempvs = cell2mat(tempvs);
tempvs = double(tempvs);
但是,在八度音阶(版本 3.8.2)中同样不起作用(不识别“D”数字),所以我进行了如下修改;
tempvs = textscan ( input_unit, '%s', N );
tempvs = cell2mat(tempvs);
values = zeros(N,1);
for i = 1: N
values(i) = str2num(tempvs{i,1});
end
还有其他有效的方法来完成这项工作吗? 提前感谢您的帮助。
注意:将数据文件更改为“1.2E+02 3.23E+01 ....”形式不是一种选择,已逐行尝试使用 fgetl 读取,但速度很慢。
【问题讨论】: