如果你帮助我,我会很高兴的。我写了一个简短的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')
结果就在这里
非常感谢你!
答案 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]点(可能是空行)。我刚刚将数据复制到新文件中,现在可以正常工作。