使用matlab中的textscan将包含特殊字符的行替换为nan

使用matlab中的textscan将包含特殊字符的行替换为nan,matlab,textscan,Matlab,Textscan,我正在尝试使用textscan读取包含以下行的文件 1.02.03.0?6.05.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.032.033.0?36.0 35.0 如何将问号替换为nan?您是否尝试过使用%s%s%s%s进行textscan并使用str2double将生成的单元格数组转换为数字 f = fopen('file.txt'); raw = textscan(f, '%s %s %s %s %s %

我正在尝试使用textscan读取包含以下行的文件

1.02.03.0?6.05.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.032.033.0?36.0 35.0


如何将问号替换为nan?

您是否尝试过使用
%s%s%s%s
进行
textscan
并使用
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

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

它不应该停止读取,因为“?”是一个有效字符串,即%s。我在一个代码示例中进行了编辑。您尝试过该代码吗?它将问号读作
nan
。这就是str2double部分所做的。为什么不在matlab中键入
str2double('?')