robot4_motors.txt
M 204 20795 20795 3000 0 16067 16066 3000 0 0 0 6000 0
M 524 20795 20794 3000 0 16067 16066 3000 0 0 0 6000 0
M 735 20795 20795 3000 0 16067 16066 3000 0 0 0 6000 0
M 995 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
M 995 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
M 1233 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
M 1499 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
M 1763 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
这是一个数据文件。我想从文件中取出第3列和第7列,并绘制它们。我在matlab中写下代码。
代码
f = fopen('robot4_motors.txt');
plot(f(:, 3), f(:, 7))
但是代码不起作用。
抛出错误 位置2的索引超出数组 界限(不得超过1个)。
trick1错误(第21行) plot(f(:, 3),f(:, 7))
答案 0 :(得分:1)
fopen
返回一个数字ID,它表示打开的文件,它不是矩阵。您需要解析文件以提取数据。
解析文件的一种方法是使用dlmread
,因为这是一个以空格分隔的文件。
% Read data into M starting at row 0, column 1.
M = dlmread('robot4_motors.txt', ' ', 0, 1);
此后,M
将包含文件中除第一列(非数字列)以外的所有条目。
>> M
M =
204 20795 20795 3000 0 16067 16066 3000 0 0 0 6000 0
524 20795 20794 3000 0 16067 16066 3000 0 0 0 6000 0
735 20795 20795 3000 0 16067 16066 3000 0 0 0 6000 0
995 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
995 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
1233 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
1499 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0
1763 20795 20795 3000 0 16067 16067 3000 0 0 0 6000 0