尝试在matlab中更改轴的颜色。
引用matlab文档:Matlab docs on setting axis properties
代码段:
subplot( 'Position', [ left bottom (1/(cols*2)) (1/rows) ] );
ax = gca;
ax.Color = 'y';
这只是文档中示例的复制和粘贴(如下所示):
但是matlab会发出警告并且不会改变我的轴颜色:
警告:Struct字段分配会使用类覆盖值 “双”。请参阅MATLAB R14SP2发行说明,分配非结构 变量作为结构显示警告,详情。
我尝试过分配一个双,比如说42.0,但它不喜欢那样更好。
答案 0 :(得分:14)
您的警告消息似乎表明您使用的是Matlab R2014b之前的版本。
如果是这样,您就无法直接访问点符号,因为当您执行ax=gca;
时,您会得到类ax
的返回值double
。该值是对象(本例中为当前轴)的句柄ID,但不是句柄本身。
当您尝试ax.Color = 'y';
时,Matlab认为您要使用新变量ax [double]
覆盖您的ax
,该变量将是一个结构,字段为color
,并且警告。
您仍然可以访问图形对象和属性的点表示法,但您必须首先使用函数handle
检索对象的实际句柄。例如:
ax = handle( gca) ; %// the value "ax" returned is an `object`, not a `double`
甚至是对图形对象句柄的现有引用:
ax = gca ; %// retrieve the `double` reference to the handle
...
ax = handle(ax) ; %// the value "ax" returned is an `object`, not a `double`
之后,您应该能够对图形对象的所有公共属性使用点表示法。 ax.Color = 'y';
现在应该有效