对于这样一组数据, 每一列数据长度保持一致, 不足的采用空格补充; 数据与数据之间采用空格分隔:
13.52220 0.00 18.100 0 0.6310 3.8630 100.00 1.5106 24 666.0 20.20 131.42 13.33 23.10 4.89822 0.00 18.100 0 0.6310 4.9700 100.00 1.3325 24 666.0 20.20 375.52 3.26 50.00 5.66998 0.00 18.100 1 0.6310 6.6830 96.80 1.3567 24 666.0 20.20 375.33 3.73 50.00 6.53876 0.00 18.100 1 0.6310 7.0160 97.50 1.2024 24 666.0 20.20 392.05 2.96 50.00 9.23230 0.00 18.100 0 0.6310 6.2160 100.00 1.1691 24 666.0 20.20 366.15 9.53 50.00 8.26725 0.00 18.100 1 0.6680 5.8750 89.60 1.1296 24 666.0 20.20 347.88 8.88 50.00 11.10810 0.00 18.100 0 0.6680 4.9060 100.00 1.1742 24 666.0 20.20 396.90 34.77 13.80 18.49820 0.00 18.100 0 0.6680 4.1380 100.00 1.1370 24 666.0 20.20 396.90 37.97 13.80 19.60910 0.00 18.100 0 0.6710 7.3130 97.90 1.3163 24 666.0 20.20 396.90 13.44 15.00 15.28800 0.00 18.100 0 0.6710 6.6490 93.30 1.3449 24 666.0 20.20 363.02 23.24 13.90
使用内置的 readmatrix 读取, 会出现以下两个问题:
每行行首可能会出现空格, readmatrix 会得到第一个数据为 NaN;
数据与数据之间虽然都是空格, 但空格数量不统一, 有1个空格、2个空格和3个空格几种情况。
所以使用 readmatrix 得到的数据列数不匹配,多分隔出来的数据全部都是 NaN.
对于上述两个问题,MATLAB 中的 readmatrix 函数是可以输入 "ConsecutiveDelimitersRule", "join" 把重复的分隔符合并成一个分隔符, "LeadingDelimitersRule", "ignore" 参数忽略行首的分隔符.