在matlab中使用textscan替换包含特殊字符的行

时间:2013-09-29 05:27:02

标签: matlab textscan

我正在尝试使用包含以下行的文本扫描来读取文件

1.0 2.0 3.0? 6.0 5.0

11.0 12.0 13.0 15.0 16.0 15.0

21.0 22.0 23.0 25.0 26.0 25.0

31.0 32.0 33.0? 36.0 35.0

如何用nan替换问号?

2 个答案:

答案 0 :(得分:1)

您是否尝试使用textscan执行%s %s %s %s %s %s并使用str2double将生成的单元格数组转换为数字

f = fopen('file.txt');
raw = textscan(f, '%s %s %s %s %s %s');
data = [];
for k = 1:6
    data = [data str2double(raw{k})];
end

答案 1 :(得分:0)

您可以使用TEXTSCAN并将'TreatAsEmpty'指定为'?'。