2015-11-12 76 views
0

我需要在matlab中向數組添加數據,我試圖使用dlmread,但它添加了隨機零,我如何定義行長度?Matlab dlmread添加隨機零

我的文件:

1 65.058 5 0 
2 80.661 46 0 
3 102.083 197 1 
4 80.529 111 5 
5 88.331 160 6 

我行:

X = dlmread(Data, ' ', 0, 0); 

輸出:

1.0000 65.0580 5.0000 
    0   0   0 
2.0000 80.6610 46.0000 
    0   0   0 
3.0000 102.0830 197.0000 
1.0000   0   0 
4.0000 80.5290 111.0000 
5.0000   0   0 
+0

你是如何生成你的文件? – excaza

+0

這適用於我。 'X = dlmread('test.txt',''); X = X(:, 1:end-1);' – IKavanagh

+0

或者使用'textscan'併爲字符串指定%s%s%s或爲數字指定%d%d%d。 0的原因是因爲你有長度爲6個元素的行,所以matlab不得不使用較少的元素填充行,否則它將不起作用。 – GameOfThrows

回答

0

有你的文件的第一行兩個連續的空格。這會導致dlmread添加一個額外的列。我無法重新創建你的輸出(我的版本是R2015b),但我懷疑這是罪魁禍首。您不需要(也不能)使用dlmread定義行數或列數;它應該通過設計來解決它自己。當您的輸入數據與預期格式匹配時,這應該不成問題。