Matlab用ezplot('x^2+y^2=1');画圆,得到的圆不圆,要扁一点,这是为什么,难道是因为屏幕像素比?

如题所述

因为matlab默认会自动调整x和y轴单位长度,以满足屏幕分辨率比例
但是你可以使用axis equal命令使matlab调整x和y轴单位长度相同追问

我用了这个命令,还是不圆啊

追答

先输ezplot('x^2+y^2=1');,然后紧接着输axis equal;,我这里就显示正圆了

追问

哦,我是在ezplot前面用了,在后面用一下确实变圆了,可是为什么坐标范围自动被修改了

追答

因为matlab自动调整x和y轴显示出来的长度与窗口长度一致,又要求显示出来的范围不变,所以就会出现x轴用很长一段表示单位1,而y轴用较短一段表示单位1,因此图像就被横向拉伸了

坐标范围自动被修改,那是必然的。因为比如窗口横纵比为2:1,且xy轴用相同单位长度,那么xy轴范围自然也是2:1了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-22
可能是由于x轴和y轴的比例问题,当我指定x轴和y轴的范围ezplot(x^2+y^2=1,[-1,1,-1,1])时还是扁的,但用参数函数ezplot('cos(x)','sin(y)',[0,2*pi])画时,却是圆的追问

试了一下,用ezplot('cos(x)','sin(y)',[0,2*pi])确实是个正圆,好奇怪啊

相似回答