Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
始终以用户在MATLAB中测量的指定角度生成直线_Matlab_Matlab Figure_Aspect Ratio - Fatal编程技术网

始终以用户在MATLAB中测量的指定角度生成直线

始终以用户在MATLAB中测量的指定角度生成直线,matlab,matlab-figure,aspect-ratio,Matlab,Matlab Figure,Aspect Ratio,考虑下面的简单代码,它在MATLAB中生成一条向下倾斜的直线 clear, clc, close all t = 0:0.1:1; y = -t+1; plot(t,y) ax = gca 这是一条坡度为-1的直线,因此水平轴与直线之间的(锐角)角度为45度。但当你在显示器上用量角器测量时,情况就不是这样了 在不改变x轴和y轴上显示的值的范围或图形窗口的高度的情况下,如果我将量角器举到屏幕上,如何确保从水平轴到直线的测量角度为45度 我当前的方法是更改图形窗口的宽度。在图形窗口无限薄的限

考虑下面的简单代码,它在MATLAB中生成一条向下倾斜的直线

clear, clc, close all

t = 0:0.1:1;
y = -t+1;


plot(t,y)
ax = gca
这是一条坡度为-1的直线,因此水平轴与直线之间的(锐角)角度为45度。但当你在显示器上用量角器测量时,情况就不是这样了

在不改变x轴和y轴上显示的值的范围或图形窗口的高度的情况下,如果我将量角器举到屏幕上,如何确保从水平轴到直线的测量角度为45度

我当前的方法是更改图形窗口的宽度。在图形窗口无限薄的限制中,线x是一条垂直线。相反,如果图形窗口拉伸到显示器的边缘,则会变平。在中间的某个地方,线有我想要的角度。我就是找不到一个很好的方法来从数学上找到这一点,并在代码中实例化它

编辑:适用于任何锐角的更通用的解决方案。(我没有测试钝角。)


在执行命令后,声明将以像素为单位工作,然后将宽度设置为高度:

ax.Units='pixels';
最大位置(3)=最大位置(4);

您可以通过

axis equal
根据

对沿每个轴的数据单位使用相同的长度

您可能还想使用

axis tight
哪个

通过将轴限制设置为数据范围,使轴框紧紧围绕数据


Matlab确实具有获取本地屏幕分辨率的功能。get(0)是我正在使用的。非常好!非常感谢。这会让我一整天都发疯。这对其他角度不起作用,轴的极限会延伸。这条线永远是45度,没错。我只是提供了一个问题的答案,而不是一般的编程服务。一旦你了解了这个机制,就很容易概括了。@CrisLuengo,L.Scott Johnson给了我钉子锤。从这里概括起来是很简单的。@UniqueWorldline:Luis的答案是正确的方法。-我只是指出这个答案的局限性。
axis tight