我正在尝试更新 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]];
条目
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);