2014-10-10 72 views
0

我需要能够借此:读取文本文件到MATLAB和存储为两个单独的阵列

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

将其保存到文本文件中,并保存到数组中。不过,我必须将第一列保存为[x by 1]数组,然后将其余的保存为单独的数组。对不起,如果没有意义。但我无法弄清楚。提前致谢。

编辑:

我设法利用这个保存的列数组:

diveData = fopen(dive_data.txt'); 

degDiff = textscan(diveData, '%f %*[^\n]'); 

degDiff = degDiff{:}; 

但是,我不能得到阵列的其余部分的工作,所以我不知道是什么去做。

回答

0

首先,使用textread一次读入所有数据。如果你这样做,那么你会读取所有的数据作为一个单一的数组。要解决这个问题,你需要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 
+0

@ user3435253我的荣幸!祝你好运! – rayryeng 2014-10-10 23:51:03

相关问题