作业帮 > 综合 > 作业

matlab中如何找出不同维度矩阵出现次数最多的数组并记录其个数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/27 17:29:35
matlab中如何找出不同维度矩阵出现次数最多的数组并记录其个数

例如上图,要找出出现次数最多的是(7,8),共出现4次.(有可能出现次数较多的数组有多个)


首先是胞矩阵中的序列问题,不妨假设AA{1}是一个多行两列的数据,AA{2}同例.
程序如下
clc
clear all
AA{1}=[1 2;2 3;7 8;1 5;3 2];
AA{2}=[7 8;6 2;8 1];
AA{3}=[4 5;1 1;2 8];
AA{4}=[1 4;7 8];
AA{5}=[2 4;2 3;7 8;9 0];
Tol=[AA{1}' AA{2}' AA{3}' AA{4}' AA{5}'];
T=Tol';
N=length(T(:,1));
C=zeros(N,1);
for j=1:N
K=T(j,:);
count=0;
for i=1:N
if(T(i,:)==K(1,:))
count=count+1;
end
end
C(j)=count;
end
N=find(C==max(C));
fprintf('出现次数最多的是:(%d,%d)\n数量是%d\n',T(N(1),:),C(N(1)));
希望我的回答对你有所帮助!
再问: 抱歉,也许是我没将清楚,我上图中的数据只是举例,实际上AA{1}中的(1,2)是一个数组,不能分开求,如图AA中有j个维数不同的AA{j},(1,2)相当于一个整体,希望你能帮我继续解答,谢谢啦!
再答: 你能定义成这样,但是matlab程序不会接受你的这种定义