Matlab绘图?

时间:2012-11-30 22:51:55

标签: matlab octave

这里的Matlab代码应该绘制存储在向量X和Y中的值,这些值已经由用户填充,这里的问题是: 当你点击复杂和真实的极点时,绘图会产生正确的点,而当只输入真正的极点时,输出很奇怪。 这就像x轴在y轴上,我不知道横轴是什么。

axis([-10,10,-10,10])
grid
[x,y] = ginput 

subplot(2,2,1)
axis([-10,10,-10,10])
grid

subplot(2,2,2)
axis([-10,10,-10,10])
hold all
grid


x = round (x)
y = round (y)

if( y > 0.5 | y < 0.5)
r1 = x + i*y
r2 = conj(r1)

plot (r1,'*')
hold all 
plot (r2,'*')

else

plot (x,y)

end

2 个答案:

答案 0 :(得分:1)

我不是100%肯定你在说什么,但我相信你的问题在if语句中,如下所示。具体来说,你永远不能输入第一个子句,除非y = .5,这是不太可能的。我怀疑你想要abs(y)<0.5,看看[-0.5 0.5]。其次,你的两个图彼此不匹配,第一个图是复数,第二个是x和y值。这似乎不对,但我不确定你要做什么,所以我不知道如何解决它。

if( y > 0.5 | y < 0.5)

    r1 = x + i*y
    r2 = conj(r1)

    plot (r1,'*')
    hold all 
    plot (r2,'*')

else

    plot (x,y)

end

答案 1 :(得分:0)

问题是Y应该在这个范围内: if ( y > 0.5 | y < -0.5 ) 我错误地写了它:if ( y > 0.5 | y < 0.5 )

为什么我想要这个范围,因为我的Y轴代表虚轴,而X轴代表Real轴,每当我尝试输入一个实数时,y坐标总是有一个值,例如y = 0.001,意味着它永远不会等于零,这就是为什么我需要这种近似来确保如果Y的值大于0.5或小于-0.5那么它是&#39; sa复数,否则它是真实的。

最后,我使用了:scatter (x,y,'filled')代替情节原因情节画了一条线而不是点。

感谢大家:)