これは、私が持っているデータ構造に対して機能します。
data = [
0, 0, 1, 0;...
1, 0, 1, 1;...
1, 1, 0, 1;...
0, 1, 0, 0 ...
];
figure(1);
hold off;
%slow way
for i = 1:size(data, 1)
plot([data(i, 1) data(i, 3)], [data(i, 2) data(i, 4)], 'r-');
hold on;
end
%fast way ("vectorized")
plot([data(:, 1)' data(:, 3)'], [data(:, 2)' data(:, 4)'], 'b-');
axis equal
この特定の例では、正方形を描画します。
重要なのは、MATLABが引数の列ごとに線を引くことです。つまり、の引数にplot
n個の列がある場合、その行にはn -1個のセグメントがあります。
ベクトル内のすべての点を接続する必要がある「ドットを接続する」シナリオでは、MATLABは必要に応じて列ベクトルを取得するために転置するため、これは関係ありません。リストのすべてのポイントを接続するのではなく、ポイントのペアのみを接続する必要があるため、アプリケーションで重要になります。