MATLAB 2022:如何测试figure/axis对象参数适配exportgraphics
解决方案
要让参数f支持所有exportgraphics能接受的有效对象,你可以在arguments块的参数约束里用下面两种方式之一:
方法1:用图形对象基类验证
exportgraphics支持的所有对象(比如窗口figure、坐标轴axes、面板uipanel、标签页uitab这些)都继承自matlab.graphics.Graphics这个基类,直接验证参数属于这个基类,就能覆盖所有有效对象:
% myexportgraphics.m function myexportgraphics(f) arguments f (1,1) matlab.graphics.Graphics; % 替换原来的FIXME行 end exportgraphics(f,...); end
方法2:显式列出所有兼容类型
要是你想明确限定只支持某几种对象(比如只允许窗口和坐标轴),可以用类型联合的方式:
% myexportgraphics.m function myexportgraphics(f) arguments f (1,1) {matlab.mixin.Heterogeneous(matlab.ui.Figure, matlab.graphics.axis.Axes)}; end exportgraphics(f,...); end
不过方法1更简洁,还能自动适配后续MATLAB版本新增的、同样继承自matlab.graphics.Graphics的可导出对象,兼容性更好。
内容的提问来源于stack exchange,提问作者Jonas Stein
相关产品推荐
相关产品推荐

