真麻烦 发表于 2009-3-8 22:14

用compass画图, 请大家帮忙

:@)嗨,大家好,

我是matlab的新手。一个很简单的问题请教大家:

我用subplot 以及compass画多个罗盘图,为了便于比较,所以我想把每个subplot的图的半径设置成一样的。
试了半天,总是不成功,请大家帮忙!如描述不清,请看附图!

ChaChing 发表于 2009-3-9 11:31

基本上, compass也是使用到polar, 所以可能没现成的!
建议hold on, 画在同一张上并使用不同颜色
不然去官网找找吧

friendchj 发表于 2009-3-9 13:14

回复 沙发 ChaChing 的帖子

我去官网去查了,没查到。看了一下compass的m文件,画图是借助polar。

friendchj 发表于 2009-3-9 13:23

想到一个不是办法的办法,首先找到x.^2+y.^2最大的一组(x,y).
e.g.:
clear
clc
x=;
y=;
subplot(221)
compass(x(4),y(4),'w')
hold on
compass(x(1),y(1))
subplot(222)
compass(x(4),y(4),'w')
hold on
compass(x(2),y(2))
subplot(223)
compass(x(4),y(4),'w')
hold on
compass(x(3),y(3))
subplot(224)
compass(x(4),y(4))
~~~~~~~~~~~~~~~~~~~~~~~~~~~
PS:必须先画大的,再画小的。

[ 本帖最后由 friendchj 于 2009-3-9 13:55 编辑 ]

ChaChing 发表于 2009-3-9 13:50

早上也是朝这方向考虑!
先画出一个最大的, 再将之隐藏, 但未找到其属性!
唯一最像的是HandleVisibility, 将之设成off但无效
还是年轻人反应快!

真麻烦 发表于 2009-3-9 16:19

:@)还真是没有想到有这么多好心人,热心人!早上起来看到这么多回复,还真是觉得挺好。感谢各位的回复。:@)

问题是我有很多很多这样的图要比较,附件只是一个例子而已,所以不能hold on,把所有的画在一个图里。
隐藏也好像不太是个办法,一方面找最大的每次就很烦,再者,隐藏还没有解决。

这要是在别的画图软件里,也就是一个命令的事儿 (要不是看在compass的份上,.......:loveliness:)。 总之感觉这个matlab不太好用:loveliness:

继续等...........

ChaChing 发表于 2009-3-9 16:32

4F可能已经是最佳解了!

friendchj 发表于 2009-3-9 16:56

回复 6楼 真麻烦 的帖子

每个工具都有自己的特点,也不要强求matlab什么。其实4F的程序还可以改的通用和简便些。
例如:
clear
clc
x=;
y=;
z=sqrt(x.^2+y.^2);
=max(z);
ind1=ceil(length(x)/2);
ind2=length(x)-ind1;
for i=1:length(x)   
subplot(ind1,ind2,i)
compass(x(ind),y(ind),'w')
hold on
compass(x(i),y(i))
end

真麻烦 发表于 2009-3-9 16:58

回复 7楼 ChaChing 的帖子

谢谢!


实际上这个问题也不是一个人有,比如:
http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/172190

问题是这些看上去很诱人的,都不管用
页: [1]
查看完整版本: 用compass画图, 请大家帮忙