我需要能够接受这个:
2.8 7.23 3.64 5.91 9.14 4.17 3.63
2.2 7.53 2.20 10.00 3.28 3.09 7.22
1.1 3.64 7.85 5.15 2.78 7.39 9.15
3.6 3.49 9.99 2.40 7.68 4.53 4.97
2.8 2.60 8.82 5.46 10.00 10.00 7.93
3.5 6.33 4.98 10.00 8.11 2.99 10.00
2.5 6.90 7.35 10.00 10.00 9.93 10.00
1.0 2.05 3.75 5.28 2.34 7.61 9.80
3.8 4.61 7.32 10.00 8.19 2.01 4.19
2.2 5.43 4.12 8.29 5.61 7.33 8.33
3.2 2.13 8.84 2.72 3.40 4.12 9.13
1.4 9.01 5.88 8.79 3.28 7.87 2.03
将其保存到文本文件中,例如nums.txt,并将其保存到Matlab中的数组中。但是我必须将第一列保存为[x by 1]数组,然后将其余列保存为单独的数组。对不起,如果这没有意义。但我无法弄明白。提前谢谢。
编辑:
我设法通过使用这个来保存列数组:
diveData = fopen(dive_data.txt');
degDiff = textscan(diveData, '%f %*[^\n]');
degDiff = degDiff{:};
但是,我不能让阵列的其余部分工作,所以我不知道该怎么做。
答案 0 :(得分:0)
首先,使用textread
一次性读入所有数据。如果你这样做,那么你将把所有数据作为一个1D数组读取。要解决此问题,您需要reshape
数组,以便拥有7列数组。请注意,MATLAB按列读取数据,因此您需要在完成后转置矩阵。
在此之后,提取第一列以将其放入一个数组中,然后使用其余内容并将其放入另一个数组中。换句话说:
f = textread('nums.txt', '%f');
vals = reshape(f, 7, []).';
oneColumn = vals(:,1);
otherStuff = vals(:,2:end);
oneColumn
将是您想要的第一列,而otherStuff
将是其他列。当您运行此代码时,这就是我的数据:
oneColumn =
2.8000
2.2000
1.1000
3.6000
2.8000
3.5000
2.5000
1.0000
3.8000
2.2000
3.2000
1.4000
otherStuff =
7.2300 3.6400 5.9100 9.1400 4.1700 3.6300
7.5300 2.2000 10.0000 3.2800 3.0900 7.2200
3.6400 7.8500 5.1500 2.7800 7.3900 9.1500
3.4900 9.9900 2.4000 7.6800 4.5300 4.9700
2.6000 8.8200 5.4600 10.0000 10.0000 7.9300
6.3300 4.9800 10.0000 8.1100 2.9900 10.0000
6.9000 7.3500 10.0000 10.0000 9.9300 10.0000
2.0500 3.7500 5.2800 2.3400 7.6100 9.8000
4.6100 7.3200 10.0000 8.1900 2.0100 4.1900
5.4300 4.1200 8.2900 5.6100 7.3300 8.3300
2.1300 8.8400 2.7200 3.4000 4.1200 9.1300
9.0100 5.8800 8.7900 3.2800 7.8700 2.0300