readmatrix忽略行首分隔符以及分隔符重复

标签: 问题反馈——未实现的功能

邱彼郑楠 2025-08-01 19:06:30

对于这样一组数据, 每一列数据长度保持一致, 不足的采用空格补充; 数据与数据之间采用空格分隔:

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 读取, 会出现以下两个问题:

  1. 每行行首可能会出现空格, readmatrix 会得到第一个数据为 NaN;

  2. 数据与数据之间虽然都是空格, 但空格数量不统一, 有1个空格、2个空格和3个空格几种情况。

所以使用 readmatrix 得到的数据列数不匹配,多分隔出来的数据全部都是 NaN.

对于上述两个问题,MATLAB 中的 readmatrix 函数是可以输入 "ConsecutiveDelimitersRule", "join" 把重复的分隔符合并成一个分隔符, "LeadingDelimitersRule", "ignore" 参数忽略行首的分隔符.


回复

回复

重置 提交