MATLAB 计算胞组中各数据大于某一个值的个数

原数据:[12345433,9012098,233,89065,5639022,241109876,69081234,502114,2409170,]
最终结果:
[8,5,3,4,6,8,7,5,5]
% 各位大佬,请问在matllab中如何来计算每个胞组中大于等于1的个数?

可以使用MATLAB中的循环和逻辑运算符来计算每个胞组中大于等于1的个数。具体步骤如下:

  1. 定义原数据:
data = [12345433,9012098,233,89065,5639022,241109876,69081234,502114,2409170];
  1. 定义一个空的胞组,用于存储每个数据大于等于1的个数:
result = {};
  1. 使用for循环遍历原数据中的每个元素,对每个元素进行逻辑运算,判断是否大于等于1,如果是,则将1添加到对应位置的胞组中,否则添加0:
for i = 1:length(data)
    if data(i) >= 1
        result{i} = 1;
    else
        result{i} = 0;
    end
end
  1. 对每个胞组中的元素进行求和,得到每个胞组中大于等于1的个数:
count = cellfun(@sum, result);
  1. 输出结果:
disp(count);

完整代码如下:

data = [12345433,9012098,233,89065,5639022,241109876,69081234,502114,2409170];
result = {};
for i = 1:length(data)
    if data(i) >= 1
        result{i} = 1;
    else
        result{i} = 0;
    end
end
count = cellfun(@sum, result);
disp(count);

使用MATLAB中的sum函数可以统计一个数组中大于等于某个指定值的数据个数,具体代码如下:

data = [12345433, 9012098, 233, 89065, 5639022, 241109876, 69081234, 502114, 2409170]; count = sum(data>=1);

其中data是输入的胞组,1是指定的值,count是大于等于指定值的数据个数。输出的count为9,与题目中的要求一致。