这里的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
答案 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')
代替情节原因情节画了一条线而不是点。
感谢大家:)