首页 > 技术文章 > 二维区间统计方法

redufa 2020-09-17 15:27 原文

 

1、满足第一列同时满足第二列中的行数

   例子:

a=[1 2  3 4  2  4  3  5]
b=[1 2  1 2  4  4 2   6]

x=find(a>1 & a<4)
y=find(b(x)>1& b(x)<4) 
x(y)  

输出结果(格式已规整,非matlab格式):

a =1 2 3 4 2 4 3 5   b =1 2 1 2 4 4 2 6   x =2 3 5 7  y =1 4 ans =2 7

 

2、区间统计的方式:

m=20;n=20;

X6=X6(:,6);Y6=Y(:,6);   %  导入数据

% 求最大值最小值
X6_min=min(X6);X6_max=max(X6);Y6_min=min(Y6);Y6_max=max(Y6);

% 区间间隔,及区间的边界
X6_m=(X6_max-X6_min)/m;
Y6_n=(Y6_max-Y6_min)/n;

for i=1:m+1
    X_m(i)=X6_min+X6_m*(i-1)
end

for i=1:m+1
    X_m(i)=X6_min+X6_m*(i-1)
end

   XY_mn=zeros(m,n);
   
% 判断是否在某一个区间   
  for j=1:n
       i=1:m
       X_m_N=find(X6>X_m(i) & X6<X_m(i+1));
       Y_n_N=find(Y6(X_m_N)>Y_n(j) & Y6(X_m_N)< Y_n(i+1));
       XY_mn(i,j)=length(Y_n_N)      
%  XY_N=X_m_N( Y_n_N) end figure(
1);bar3(XY_mn); figure(2);bar(sum(XY_mn)); figure(3);bar(sum(XY_mn');

PS: 如果需要获取某个二维区间的元素,需要在2中最后一个循环添加   XY_N=X_m_N( Y_n_N)

 

推荐阅读