0

这里的这个 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
4

2 回答 2

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
于 2012-12-01T11:49:20.763 回答
0

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

and why I want this range, because I have the Y-axis representing the Imaginary axis, and the X-axis representing the Real axis, whenever I attempt to enter a Real number, the y coordinate always has a value for example y = 0.001, meaning it's never equal to zero, that's why I needed this approximation to assure that if Y's value is larger than 0.5 or smaller than -0.5 then it's a complex number, otherwise it's real.

And finally, I used : scatter (x,y,'filled') instead of plot cause plot drew a line, not points.

thanks for everyone :)

于 2012-12-01T17:43:28.457 回答