如果您查看csvread 的帮助,您会发现它只是dlmread 的包装器。
这个函数相当于
X = dlmread (FILENAME, "," , DLM_OPT1, ...)
任何可选参数都直接传递给“dlmread”
dlmread 帮助描述了一个可选参数'emptyvalue',允许您指定对文件中的空条目执行的操作。
-- DATA = dlmread (FILE, SEP, RANGE)
-- DATA = dlmread (..., "emptyvalue", EMPTYVAL)
...
“emptyvalue”选项可用于指定用于
填写空白字段。默认为零。请注意,任何非数字
值,例如文本,也被“空值”替换。
使用此参数,您可以插入任何您想要的数值。这包括 Inf 和 NaN 等值,如果这是您想要做的,您可以使用它们在绘图之前过滤掉数据。
>> dlmread('testdata.dat')
ans =
0.59000 0.09000 1.12000 0.10600
0.23000 0.09000 0.88000 0.10400
0.00000 0.00000 0.02000 0.10500
>> dlmread('testdata.dat','emptyvalue',999)
ans =
0.590000 0.090000 1.120000 0.106000
0.230000 0.090000 0.880000 0.104000
999.000000 999.000000 0.020000 0.105000
>> dlmread('testdata.dat','emptyvalue',inf)
ans =
0.590000 0.090000 1.120000 0.106000
0.230000 0.090000 0.880000 0.104000
Inf Inf 0.020000 0.105000
>> dlmread('testdata.dat','emptyvalue',nan)
ans =
0.590000 0.090000 1.120000 0.106000
0.230000 0.090000 0.880000 0.104000
NaN NaN 0.020000 0.105000
似乎 plot 命令将忽略 NaN 和 inf。为此,我建议使用 NaN。
>> M = dlmread('testdata.dat','emptyvalue',nan)
M =
0.590000 0.090000 1.120000 0.106000
0.230000 0.090000 0.880000 0.104000
NaN NaN 0.020000 0.105000
>> x1 = M(:,1); y1 = M(:,2); x2 = M(:,3); y2 = M(:,4);
>> plot(x1,y1,"or", x2,y2,"*")