最近更新到MATLAB 2015,它改变了图形句柄的存储方式(我认为)。
我将同一图形上各个线条的句柄存储在一个二维数组中。在我以前的MATLAB版本中,任何没有填充的地方都是零。现在这个数组是一个图形数组,未填充的位置是“GraphicsPlaceholder”。有没有办法搜索数组找到它们的位置?
例如,我的句柄列表如下:
P=
2x7 graphics array:
Columns 1 through 6
Line Line Line Line Line Line
GraphicsPlaceholder GraphicsPlaceholder GraphicsPlaceholder GraphicsPlaceholder Line GraphicsPlaceholder
我想要做的是搜索并找到哪一列被线条填充而不是图形占位符。理想情况下,它应该是这样的:
FUNCTION(P) =
1 1 1 1 1 1
0 0 0 0 1 0
谢谢
GraphicsPlaceholder
对象的方式。相反,您可以直接使用isa(x,'matlab.graphics.GraphicsPlaceholder')
进行测试。 - Sam Robertsis
函数的描述,但isa
没有完全进入我的脑海。我怪咖啡不够。现在正在编辑,谢谢。 - sco1GraphicsPlaceholder
的实现保持不变(没有属性),才能正确运行。@SamRoberts 的方法更加明确,只要GraphicsPlaceholder
保持为matlab.graphics.GraphicsPlaceholder
对象,就能正常运行。而且它更易读;如果没有注释或者运行代码,我使用的方法为什么有效并不明显。他的方法在技术上也更快,因为只需要一个函数调用,但我不确定在哪个数据大小下差异会真正显著。 - sco1