带你玩转matlab单位换算

2023-03-17 12:59:08 浏览数 (1)

相信不少小伙伴接触过figure这个函数,figure中有个属性就是units,有pixels、normalized、inches、centimeters、points等几种可选情况,不少小伙伴使用它的时候可能没有注意而直接使用了系统的默认设置。

这个单位对定义界面尺寸、字体、位置等都有极大影响,尤其在GUI、APP开发中。下面就一起来看看这几个单位之间的换算关系吧。

1 inches = 2.54 centimeters

1 inches = 4.62 normalized

1 inches = 72.0 points

1 inches = 96.0 pixels

以上的换算关系来源于matlab GUIDE,由这几个关系式就可完成它们之间的相互转换。为了方便大家使用,小编专门将它们之间的相互转换整理成函数 —— unitsTrans,使用unitsTrans可以轻松完成以上的各种转换。

函数调用格式及参数说明:

调用格式:out = unitsTrans(ori,type,num)

ori为需要转换的数据;type为转换类型,字符串型数据;num为输出数据小数点后的有效数字位数,num可以为空,默认为2;out为转换后的数据。

所有可用type类型说明如下:

为了方便type类型书写,将五个单位分别进行缩写处理,inches缩写为incentimeters缩写为cenormalized缩写为nopoints缩写为popixels缩写为pi。若要将inches转换成pointstype则写成 'in2po',意为"inches to points"。

所有可用type:

inches到其他:in2in, in2ce, in2no, in2po, in2pi

centimeters到其他:ce2ce, ce2in, ce2no, ce2po, ce2pi

normalized到其他:no2no, no2in, no2ce, no2po, no2pi

points到其他:po2po, po2in, po2ce, po2no, po2pi

pixels到其他:pi2pi, pi2in, pi2ce, pi2no, pi2po

使用示例

代码语言:javascript复制
% 示例1:
out = unitsTrans(0.12,'no2po')
% 示例2:
out = unitsTrans(12,'pi2ce',4)

小伙伴们可以根据上面的关系式自己编写相关转换程序。

参考资料:

[1] https://ww2.mathworks.cn/help/matlab/ref/figure.html

如需转载,请在公众号中回复“转载”获取授权,未经授权擅自搬运抄袭的,必将追究其责任!

0 人点赞