簡體   English   中英

在MATLAB中繪制點時的問題

[英]Problems when plotting points in MATLAB

當我試圖在MATLAB中將兩組點繪制成圖表時,我遇到了一些問題。 我創建了兩個矩陣,分別代表組,一組圓圈和另一組十字架。 結果應如下圖所示:

在此輸入圖像描述 創建這兩個組的代碼是這樣的:

circles = [1 1; 2 1; 2 2; 2 3; 2 4; 3 2; 3 3; 4 1; 4 2; 4 3];
crosses = [1 2; 1 3; 1 4; 2 5; 3 4; 3 5; 4 4; 5 1; 5 2; 5 3];

plot(circles, 'ro');
hold on
plot(crosses, 'b+');
hold off;
axis([0,6,0,6]);

但是這段代碼繪制了一張凌亂的圖表,類似於下圖:

在此輸入圖像描述

情節可能有什么問題?

Plot通常接受兩個維度參數。 如果提供了一個,那么元素將根據其索引進行繪制。

PLOT線性圖。 PLOT(X,Y)繪制矢量Y與矢量X的關系。如果X或Y是矩陣,則繪制矢量相對於矩陣的行或列,無論哪一行。 如果X是標量而Y是矢量,則創建斷開的線對象並在X處垂直繪制為離散點。

PLOT(Y)繪制Y的列與其索引。 如果Y是復數,則PLOT(Y)等效於PLOT(real(Y),imag(Y))。 在PLOT的所有其他用途中,忽略虛部。

可以使用PLOT(X,Y,S)獲得各種線類型,繪圖符號和顏色,其中S是由來自以下3列中的任何一個或全部的一個元素組成的字符串:

因此,既然您需要分別提供xy ,那么您可以輕松解決問題:

circles = [1 1; 2 1; 2 2; 2 3; 2 4; 3 2; 3 3; 4 1; 4 2; 4 3];
crosses = [1 2; 1 3; 1 4; 2 5; 3 4; 3 5; 4 4; 5 1; 5 2; 5 3];

plot(circles(:, 1), circles(:, 2), 'ro');
hold on
plot(crosses(:, 1), crosses(:, 2), 'b+');
hold off;
axis([0,6,0,6]);

這個解決方案明確地定義了x和y維度 ,因此不應該對圖表產生這樣的混淆,並且它將完全按照您希望的方式生成它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM