1.报错细节:
2.报错原因解释
高版本matlab如matlab 2016b不会存在该问题,这是因为高版本matlab的gca可以直接得到图片句柄对应的结构体,而低版本matlab则获取到的gca是'CurrentAxes'的句柄,句柄和结构体的区别在于句柄是整数,而结构体是包含子属性的直接用 . 就可以获取。
举例
低版本matlab的gca: gca=106.22
高版本matlab的gca:XLim: [-3600 3600]
YLim: [-3600 3600]
XScale: 'linear'
YScale: 'linear'
GridLineStyle: '-'
Position: [0.130000000000000 0.110000000000000 0.775000000000000 0.815000000000000]
Units: 'normalized'
3.解决方案
将469行的d = [ax.XLim ax.YLim ax.ZLim]; 改成d = [get(ax,'xlim') get(ax,'ylim')get(ax,'zlim')];
然后,后面与h相关也会报一连串的错误,这主要是因为结构体赋空时子属性不存在:因此在报错的地方加上 ~isempty(h) &&