楼主: 树袋熊2
5231 2

[问答] 如何对对一个二维数组做分段计数? [推广有奖]

  • 4关注
  • 4粉丝

已卖:464份资源

博士生

3%

还不是VIP/贵宾

-

威望
0
论坛币
336 个
通用积分
3.8492
学术水平
11 点
热心指数
19 点
信用等级
8 点
经验
4585 点
帖子
135
精华
0
在线时间
243 小时
注册时间
2011-3-9
最后登录
2023-9-20

楼主
树袋熊2 发表于 2013-10-6 14:53:01 |AI写论文
20论坛币
matlab小白求助~,对一维的向量有 histc(x,edges) 函数可以用,比如函数的例子:对标准正态分布分段计数:
  1. x = -2.9:0.1:2.9;
  2. y = randn(1000,1);
  3. n_elements = histc(y,x);
复制代码
如果对一个二维的向量,如 y1 = randn(1000,2); 划分的区间为x1 = -2.9:0.1:2.9; x2 = -2.9:0.1:2.9; 如何统计 y1 落在由x1,x2划分的区间块中的数量?


最佳答案

danielruc91 查看完整内容

我倒不知道有没有相关的函数,不过可以编一下: x1=-2.9:0.01:2.9; x2=x1; m=size(x1,1); n_elements=zeros(m+1); % preallocation for i1=1:m+1 for i2=1:m+1 if i1==1 ind1=y(:,1)x1(i1); else ind1=y(:,1)>=x1(i1-1) & y(:,1)=x2(i2-1) & y(:,2)
关键词:Elements Element 标准正态分布 MATLAB matla 正态分布 matlab 如何 统计

本帖被以下文库推荐

沙发
danielruc91 在职认证  发表于 2013-10-6 14:53:02
我倒不知道有没有相关的函数,不过可以编一下:

x1=-2.9:0.01:2.9;
x2=x1;
m=size(x1,1);
n_elements=zeros(m+1);       % preallocation

for i1=1:m+1
    for i2=1:m+1
          if i1==1
                ind1=y(:,1)<x1(i1);
          elseif i1==m+1
                ind1=y(:,1)>x1(i1);
          else
                ind1=y(:,1)>=x1(i1-1) & y(:,1)<x1(i1);
          end
          if i2==1
                ind2=y(:,2)<x2(i2);
          elseif i2==m+1
                ind2=y(:,2)>x2(i2);
          else
                ind2=y(:,2)>=x2(i2-1) & y(:,2)<x2(i2);
          end
          n_elements(i1,i2)=sum(ind1 & ind2);
    end
end

另外如果想看3维直方图的话,可以考虑hist3这个函数。。

藤椅
树袋熊2 发表于 2013-10-7 14:46:17
danielruc91 发表于 2013-10-6 14:53
我倒不知道有没有相关的函数,不过可以编一下:

x1=-2.9:0.01:2.9;
谢谢!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 13:39