MATLAB 和工具箱中的许多绘图函数(并非全部)都允许以下两种语法:
plotfcn(data1, data2, ...)
plotfcn(axes_handle, data1, data2, ...)
第一个绘制到当前坐标区 ( gca
) 或创建并绘制到新坐标轴(如果不存在)。第二个用句柄绘制到轴中axes_handle
。
研究了几个 MATLAB 和工具箱绘图函数的内部结构后,看起来 MathWorks 并没有真正的标准化方式来执行此操作。一些绘图例程使用内部但开放的函数axescheck
来解析输入参数;有些人对第一个输入参数进行简单检查;有些使用更复杂的输入解析子功能,可以处理更多种类的输入语法。
请注意,这axescheck
似乎使用了一种未记录的语法ishghandle
- 文档说ishghandle
只接受一个输入,如果它是任何 Handle Graphics 对象,则返回 true;但axescheck
将其称为ishghandle(h, 'axes')
,仅当它专门是一个轴对象时才返回 true 。
有人知道实现这种语法的最佳实践或标准吗?如果不是,您发现哪种方式最稳健?