繁体   English   中英

如何在Matlab中绘制点和向量

[英]How to plot point and vectors in Matlab

A = [239920.240412166 1.31193313030682;
243577.444235102 1.38185205485119;
241899.250050298 1.51264147493485;
244659.326936560 1.50845243215867;
239862.361809342 1.50810833389632;
238395.616682194 1.37125000688350;
244558.389789124 1.27212093329482;
244290.890880318 1.35116080948488;
240303.711239396 1.36064181572699;
237464.430450140 1.48857869573721;
244415.381196104 1.51252425335623;
239855.328594799 1.29178640586301;
239304.806448742 1.31075813783171;
244827.243024016 1.32080934043223;
241465.885648910 1.53667019314427;
241139.254464482 1.40424079027764;
242300.037630214 1.27160249886092;
243330.396959248 1.61411410292679;
237530.389940994 1.21846939260826];

B = [0.6 0.18; 0.15 0.46];  % green circles

for i=1:2   
    plot(A(:,1),A(:,2),'r*');
    hold on     
    plot(B(i,1),B(i,2), '-ko',...
                    'LineWidth',1,...
                    'MarkerFaceColor',[.49 1 .63],...
                    'MarkerSize',9);    
end

当我绘制A和B时,我得到了: 在此处输入图片说明

B(1,1)= 0.6,但它出现在0(X轴)上。 与B(2,1)= 0.15相同

如何纠正呢?

x轴上的对数刻度将有助于查看

set(gca, 'XScale', 'log')

但是,这将导致一个事实,即现在A的值似乎填充了一条垂直线。

如果您不能忍受,则可能要尝试断开X轴。 MATLAB不使用内置函数支持此功能,但是MATLAB文件交换中有一个解决方案

https://de.mathworks.com/matlabcentral/fileexchange/3683-breakxaxis

顺便说一句:您的代码中不需要循环。 实际上,您两次A绘制在另一个顶部。 只是

% Plot A and B without loop
plot(A(:,1), A(:,2),'r*')
hold on
plot(B(:,1), B(:,2), '-ko', 'LineWidth', 1, ...
    'MarkerFaceColor', [.49 1 .63], 'MarkerSize',9)

% Set x axis to logarithmic scale
set(gca, 'XScale', 'log')

足以显示您的情节

您的x轴从0到250000。在该范围内,0.6和0.15实际上是0。
如果需要,可以使用semilogx在x轴上使用对数刻度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM