2015-11-12 45 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定义行数或列数;它应该通过设计来解决它自己。当您的输入数据与预期格式匹配时,这应该不成问题。