如何从数组中

时间:2017-02-12 23:14:12

标签: arrays matlab plot

我有一个矩阵:

img = [1 1 2 2 
       1 1 2 2 
       3 2 2 2 
       3 2 2 2 
       3 3 3 2];

我从中获得了点数组:

A = [3 2; 5 4];

我需要逐行绘制每对点(y,x)(i.e (3,2), (5,4), etc),我尝试了代码:

for i = 1: size(A, 2)
    plot(A(i, 1), A(i, 2), '*')     
end

然而,这并未给出积分的预期位置。请问,我的代码可能有什么问题,我该怎么做才能使这项工作成功?

1 个答案:

答案 0 :(得分:0)

由于您的点对以row/column顺序排列,因此您需要切换plot的订单,因为plot的输入顺序为x/y。此外,您还需要使用行数size(A, 1)而不是size(A, 2)

for k = 1:size(A, 1)    
    plot(A(k,2), A(k,1), '*')
    hold on
end

您也可以在没有循环的情况下一次性绘制所有内容

plot(A(:,2), A(:,1), '*');