如何统计多列表中A列为1且对应B列为2的依赖匹配次数
统计A列=1且对应B列=2的匹配次数
先明确你的数据表格:
| A | B |
|---|---|
| 1 | 2 |
| 3 | 1 |
| 4 | 3 |
| 5 | 2 |
| 1 | 2 |
你需要统计A列取值为1且对应行B列取值为2的行数,示例里的结果确实是2,因为第1行和第5行都满足条件。
下面是完整的MATLAB实现方案,我会拆解逻辑帮你理解:
% 定义原始数据(这里用单元格数组存储,也可以直接用数值数组) A = {1 ; 3 ; 4 ; 5 ; 1}; B = {2 ; 1 ; 3 ; 2 ; 2}; % 若用单元格数组,先转换为MATLAB更易处理的数值数组(数值数组可跳过此步) A_num = cell2mat(A); B_num = cell2mat(B); % 生成逻辑判断数组:满足A=1且B=2的位置为true,否则为false match_flag = (A_num == 1) & (B_num == 2); % 统计true的数量(MATLAB中true等价于1,false等价于0,求和即得匹配次数) match_count = sum(match_flag); % 输出结果 disp(match_count); % 会打印出预期的2
简化版(如果A、B本身就是数值数组):
如果你的数据一开始就是数值格式,不用单元格数组包装,可以直接写成一行核心代码:
A = [1 ; 3 ; 4 ; 5 ; 1]; B = [2 ; 1 ; 3 ; 2 ; 2]; match_count = sum( (A == 1) & (B == 2) ); disp(match_count);
这样就能快速得到你想要的匹配次数啦!
内容的提问来源于stack exchange,提问作者Loui
相关产品推荐
相关产品推荐

