如何从这个包含网格(分组)的MATLAB三维条形图中提取数据?

时间:2015-08-10 07:53:32

标签: matlab matlab-figure

我想从类似于此问题答案中的数字的图中提取数据How can I adjust 3-D bar grouping and y-axis labeling in MATLAB?

我使用以下MATLAB代码,但它为x,y和z

返回null
x=get(findobj(get(gca,'Children'),'type','line'),'xdata');
y=get(findobj(get(gca,'Children'),'type','line'),'ydata');
z=get(findobj(get(gca,'Children'),'type','line'),'zdata');
你能帮我找到问题吗? 它适用于2D绘图,但它不适用于3D图:

bar3([3 2 4;2 3 1]);

我不明白为什么?

我也尝试了以下代码:

D=get(gca,'Children'); 
XData=get(D,'XData');
YData=get(D,'YData');
ZData=get(D,'ZData');

在这种情况下,我得到ZData的一些答案,ZData是一个3 * 1的单元格,每个单元格包含一个12 * 4的数组。仍然不知道如何提取值和这个单元格是什么?

如评论中所述,ZData具有常规模式。使用以下代码我可以提取数据:

z=ZData;
a=z{1,1};
r=size(a,1);
num_rows=ceil((r-2)/6);
num_col=size(z,1);
result=zeros(num_rows,num_col);
m=0;
for  i=size(z,1):-1:1
    m=m+1;
    z_i=z{i,1};
    k=0;
    for j=2:6:r
        k=k+1;         
        result(k,m)=z_i(j,2);      
    end    
end
end

结果将是我们正在寻找的数据。

0 个答案:

没有答案