绘图显示未包含在数据中的其他行

时间:2015-07-31 08:46:55

标签: matlab plot

如果你帮助我,我会很高兴的。我写了一个简短的MATLAB程序,它只显示.csv文件中的测量值。它通常有效,但是对于一个数据集,它为每个数据输入绘制一个额外的行。但额外的行不包括在数据中。你能帮忙吗?

代码:

Array=dlmread('file adress'); %Data opening
col1 = Array(:, 1); 
col2 = Array(:, 6);
col3 = Array(:, 7);
col4 = Array(:, 8);
col5 = Array(:, 9);

plot(col1, col2)%, col1, col3, col1, col4, col1, col5);
legend('Position Ra1 X axis positive','Position Ra1 X axis negative','Position Ra1 Y axis positive','Position Ra1 Y axis negative')
%axis([0 25001 1100 1850]);
xlabel('Samples');
ylabel('Position measurements [um]');
title('Radial bearing 1 position measurement - shaft rotates')

结果就在这里

result

非常感谢你!

2 个答案:

答案 0 :(得分:0)

此处的问题似乎是数据集末尾的点(0,0),因此MATLAB将最后一个正确的点与图中的(0,0)连接起来。由于数据按列存储在文件中,这意味着.csv文件中有一个空行/一行零。

最理想的解决方案是检查如何生成.csv文件,并确保不会生成额外的行。如果那是不可能的,或者你的MATLAB脚本必须能够处理这些额外的行,那么你可以检查最后一行是否只包含零,方法是对最后一行的所有(绝对)值求和,然后检查是否零:

deleteLastRow = sum(abs(Array(end,:))) == 0;

现在,如果此表达式为真,您可以删除最后一行

if deleteLastRow
    Array(end,:) = [];
end

答案 1 :(得分:0)

谢谢!

我没有发现任何[0,0]点(可能是空行)。我刚刚将数据复制到新文件中,现在可以正常工作。