Blu*_*Bit 1 arrays matlab repeat
我有一个排序(升序趋势)数组
[1 1 1 1 1 1.2 1.6 2 2 2 2.4 2.4 2.4 2.6 3 3.5 3.6 3.8 3.9 4 4.3 4.3 4.6 5 5.02 6 7]
我想检查并打印每个"自然数"之间重复数字的数量.
例如:
介于1和2之间:0(不重复)
在2和3:3之间重复2.4
3到4:0之间
在4和5:2之间重复4.3
5到6:0之间
在6到7:0之间
MATLAB中有任何功能可以完成这项任务吗?
你可以使用tabulate,并且不需要对数组进行排序.然后只需使用逻辑条件选择适当的元素.例如:
A=[1 1 1 1 1 1.2 1.6 2 2 2 2.4 2.4 2.4 2.6 3 3.5 3.6 3.8 3.9 4 4.3 4.3 4.6 5 5.02 6 7]
M=tabulate(A)                  % get frequency table
id1=mod(M(:,1),1)>0;           % get indices for non integer values
id2=M(:,2)>1;                  % get indices for more than one occurrence
idx=id1 & id2;                 % get indices that combines the two above
ans=[M(idx,1) , M(idx,2)]      % show value , # of repeats
ans =
    2.4000    3.0000
    4.3000    2.0000
| 归档时间: | 
 | 
| 查看次数: | 1147 次 | 
| 最近记录: |