我正在尝试更新 bar3 图的 ZData:
z = [[1, 2]; [3, 4]];
z_new = [[1, 2]; [3, 3]];
h = bar3(z);% works fine until here
set(h, 'ZData', z_new);
然后我收到以下错误:
Warning: Error creating or updating Surface
Error in value of property ZData
Array is wrong shape or size
Warning: Error creating or updating Surface
Error in value of property ZData
Array is wrong shape or size
它们不会使程序崩溃,但现有地块的数据会被删除而不是被覆盖。
我不明白为什么会发生这种情况,因为矩阵显然是相同的大小。
它们的大小不同。根据提供的参数
bar3
创建一个自定义ZData
条目z
。显示ZData
条目z=[[1, 2]; [3, 4]];
你可以
ZData
通过构建上述格式的矩阵并z_new
在正确的位置填充数据来进行更新,这样应该可以正常工作。如果你只是想覆盖旧图,最好使用h = bar3(z_new);
Pevan 的回答解释了为什么不能
ZData
使用输入到的相同矩阵直接设置bar3
,但这里有一个示例说明如何z_new
使用辅助函数来ZData
直接设置,而不必重新绘制新bar3
对象。有关每个步骤的更多详细信息,请参阅评论: