2015-01-06 58 views
1

我試圖加載一個文件,文件列以空格分隔,但列之間有不同數量的空格 。因爲這個而我讀,我收到提示 示例數據:在Matlab中讀取文件時,列之間用多個空格分隔

AAT_ECOLI 0.49 0.29 0.48 0.50 0.56 0.24 0.35 cp 
ACEA_ECOLI 0.07 0.40 0.48 0.50 0.54 0.35 0.44 cp 
ACEK_ECOLI 0.56 0.40 0.48 0.50 0.49 0.37 0.46 cp 
ACKA_ECOLI 0.59 0.49 0.48 0.50 0.52 0.45 0.36 cp 

可以看出,第一欄和第二有3空間,第2列和3TH柱之間有兩個空間。

你能提出一個我可以工作的功能嗎?

原始數據文件:https://drive.google.com/file/d/0B_XEmkrWR-hCMXVySVI2bU5waGs/view?usp=sharing 謝謝

+0

你試過'importdata'嗎?它似乎爲我工作。 –

+0

它將所有數據設置在一個單元格中:S。我不能分開數據 – seleucia

+0

好吧我發佈了一個答案我希望這就是你的想法! –

回答

0

長版我的評論:

使用importdata似乎做工精細;你正在尋找的技巧(我認爲:)是將所有數據連接成一個大單元,並且你很好去;

代碼:

Data = importdata('ecoli.data'); 
AllData = vertcat(Data{:}) 

排第幾:

AllData = 

AAT_ECOLI 0.49 0.29 0.48 0.50 0.56 0.24 0.35 cp 
ACEA_ECOLI 0.07 0.40 0.48 0.50 0.54 0.35 0.44 cp 
ACEK_ECOLI 0.56 0.40 0.48 0.50 0.49 0.37 0.46 cp 
ACKA_ECOLI 0.59 0.49 0.48 0.50 0.52 0.45 0.36 cp 
ADI_ECOLI 0.23 0.32 0.48 0.50 0.55 0.25 0.35 cp 

然後你就可以將數字轉換成實際的數字,因爲他們目前的字符。這是你的意思嗎?

+0

但這是char矩陣,我無法解析或分割它?也許有另一種方式來處理它? – seleucia

+0

mhh我不知道對不起。您可以使用循環遍歷每行並將char轉換爲數字? –

相關問題