尝试在此处的 matlab 绘图中更改轴的颜色。
引用 matlab 文档:Matlab docs on setting axis properties
代码片段:
subplot( 'Position', [ left bottom (1/(cols*2)) (1/rows) ] );
ax = gca;
ax.Color = 'y';
这就是文档中示例的复制和粘贴(此处显示):
但是 matlab 发出警告并且没有为我更改轴颜色:
Warning: Struct field assignment overwrites a value with class "double". See MATLAB R14SP2 Release Notes, Assigning Nonstructure Variables As Structures Displays Warning, for details.
我尝试分配一个 double ,比如 42.0,但它并没有更好地喜欢它。
最佳答案
您的警告消息似乎表明您使用的是 Matlab R2014b 之前的版本。
如果是这样,您将无法直接访问点表示法,因为当您执行 ax=gca;
时,您会得到一个类的返回值 ax
双
。该值是对象句柄的 ID (在本例中为当前轴),但不是句柄本身。
当您尝试 ax.Color = 'y';
时,Matlab 认为您想用新变量 ax
覆盖 ax [double]
code> 这将是一个结构,字段为 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`
之后,您应该能够对图形对象的所有公共(public)属性使用点表示法。 ax.Color = 'y';
现在应该有效了
关于matlab - 在 R2014b 之前的 Matlab 版本上使用点符号访问图形对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27389281/