2014-10-10 56 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

相關問題