在Matlab中调整hist3以输出xx yy zz

在Matlab中调整hist3以输出xx yy zz,matlab,histogram,Matlab,Histogram,我试图在matlab中调整hist3函数,以便在生成直方图的同时输出绘制的变量,但我没有成功。有人能解释一下怎么做吗?我尝试将xx、yy、zz声明为全局,但仍然无法将它们移动到工作区中 我不想因为Matlab在论坛上发布他们的代码(我认为这是受版权保护的)(也有300行长)而与Matlab发生冲突,但是你可以使用Matlab查看 open hist3 我在第三章末尾加了一句 if nargout > 0 nn = n; %this is the last line in the code

我试图在matlab中调整hist3函数,以便在生成直方图的同时输出绘制的变量,但我没有成功。有人能解释一下怎么做吗?我尝试将xx、yy、zz声明为全局,但仍然无法将它们移动到工作区中

我不想因为Matlab在论坛上发布他们的代码(我认为这是受版权保护的)(也有300行长)而与Matlab发生冲突,但是你可以使用Matlab查看

open hist3
我在第三章末尾加了一句

if nargout > 0
nn = n; %this is the last line in the code

global x1 %I added these 
x1= xx;
global y1
y1 = yy;
global z1
z1 = zz;
end
根据

N=hist3(__;)
返回每个存储箱中X中的元素数。此语法不会创建直方图

[N,C]=hist3(__;)
返回数值向量的1×2单元格数组中的bin中心位置,并且不绘制直方图

因此,您可以通过这些语法获得双变量直方图计数和bin中心

如果要绘制直方图并获取值,只需使用函数两次:

hist3(yourData);
[N,C] = hist3(yourData);

现在,如果您也需要二维网格(相当于
x1
y1
),您可以使用
meshgrid
-之类的函数生成这些网格。使用
C{1}
C{2}
作为
meshgrid
函数的输入


我真的建议不要更改任何MATLAB的内置函数。

接下来的问题-现在我可以得到我想要的数据,我想取两个直方图的平均值,然后再复制直方图-那么如何从N中生成直方图?我不确定我是否理解你的问题
N
是直方图条的高度,是否要绘制
N
的直方图?在这种情况下,您只需使用
hist(N)
。我也不知道你说的“取两个直方图的平均值”是什么意思。请澄清。好的,我有几个不同实验的直方图。我使用hist3获得了每个测试的数据分布。现在每个测试都有N,所以我可以找到所有测试的平均值N。剩下X,Y(从C{1}&C{2})和Z=mean N。现在我取了平均值,如何重建直方图?*我想我最好再问一个问题-给我一点时间问-我会评论一个链接。新问题如下: