matlab 通过hist3画密度图

问题描述:

matlab 通过hist3画密度图
使用scatter(x,y)画出散点图

再使用
N=numel(x);
[n C]=hist3([x(:) y(:)],[200 200]);
p=n/N;
pcolor(C{1},C{2},p).
画出的密度图像是这样:


使用hist3之后 数据为啥 是反的?
1个回答 分类:综合 2014-10-20

问题解答:

我来补答
不是反了而是,是x轴和y轴换转了,
N=numel(x);
[n C]=hist3([y(:) x(:)],[200 200]);%在这里把x数据和y数据换转就可以了
p=n/N;
pcolor(C{1},C{2},p);
再问: hist3为什么要把Y放前面呢?
再答: 这是由于 x,y坐标和 矩阵i,j下标的 互换 关系

二维直角坐标,我们习惯x是横坐标,而y是纵坐标
用plot scatter画出来的都是这样的图

而matlab将矩阵表示成图像显示的时候,为了保持位置对应关系
矩阵的第一行,第一列 对应于 图像的右上角
矩阵的第一行,对应于 图像的最上边一行

这个时候矩阵的第i行,就是图像的从上往下的第i行
矩阵的第j列,就是图像从左往右的第j列
如果换为直角坐标
也就是横坐标 x是由矩阵的列下标j 决定的
纵坐标 y 是有 矩阵的行下标i 决定的
所以这里就有个互换
再问: 这个明白了 。。。问个刚才的问题我这两个数据相除  怎么还是NAN啊?
再答: 两个数组都是1,相除没有理由是nan的
 
 
展开全文阅读
剩余:2000
上一页:为什么只选B
下一页:第8题练习