转自:https://zhidao.baidu.com/question/1366785966143396099.html
先在假设有两个向量x=[1 2 1 2 1 4 5 3 6 6],y=[1 2 1 7 6 5 3 3 6 6]。以x,y为坐标描点,并统计出每一个点(x,y)出现的频次。这个如何用matlab来实现呢?
x=[1 2 1 2 1 4 5 3 6 6]; y=[1 2 1 7 6 5 3 3 6 6]; p=[x' y']; [b m n]=unique(p,'rows'); c=tabulate(n); dot=p(m(c(:,1)),:); num=c(:,2); disp(sprintf('%6s%6s%6s','x','y','num')); disp([dot num]); 显示结果: x y num 1 1 2 1 6 1 2 2 1 2 7 1 3 3 1 4 5 1 5 3 1 6 6 2 其中得到的矩阵dot是个nx2的矩阵,n是唯一的点数 第一列存放x,第二列存放y num是一个nx1的矩阵,对应与dot矩阵那一行,那个点出现的次数 程序将dot 和 num和在一起显示,一行一行看,表示 点 (1,1)出现2次 点 (1,6)出现1次 。。。。 依次类推