如何更新 bar3 图中的 ZData?

问题描述 投票:0回答:1

我正在尝试更新 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 

它们不会使程序崩溃,但现有绘图的数据会被删除而不是被覆盖。

我不明白为什么会发生这种情况,因为矩阵显然大小相同。

matlab bar-chart matlab-figure
1个回答
0
投票

我不明白为什么会发生这种情况,因为矩阵显然大小相同。

它们的大小不一样。

bar3
根据提供的
ZData
参数创建自定义
z
条目。显示
ZData
z=[[1, 2]; [3, 4]];

条目
h.ZData

ans =

   NaN     0     0   NaN
     0     1     1     0
     0     1     1     0
   NaN     0     0   NaN
   NaN     0     0   NaN
   NaN   NaN   NaN   NaN
   NaN     0     0   NaN
     0     3     3     0
     0     3     3     0
   NaN     0     0   NaN
   NaN     0     0   NaN
   NaN   NaN   NaN   NaN


ans =

   NaN     0     0   NaN
     0     2     2     0
     0     2     2     0
   NaN     0     0   NaN
   NaN     0     0   NaN
   NaN   NaN   NaN   NaN
   NaN     0     0   NaN
     0     4     4     0
     0     4     4     0
   NaN     0     0   NaN
   NaN     0     0   NaN
   NaN   NaN   NaN   NaN

您可以通过以上述格式构建矩阵并将

ZData
数据填充到正确的位置来更新
z_new
,它应该可以工作。如果您的目的只是覆盖旧情节,您最好使用
h = bar3(z_new);

© www.soinside.com 2019 - 2024. All rights reserved.