从Matlab中的文件绘图

时间:2018-10-05 00:13:52

标签: matlab plot matlab-figure matlab-guide

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))

1 个答案:

答案 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