📄 find_max.m
字号:
function B=find_max(A,n)
%该函数查找任意维数矩阵中绝对值最大的 n 个元素
%矩阵A只能是n*n的方阵,n是元素绝对值最大的个数
%该函数能处理具有相同元素的矩阵A
%maked by Li_Ming_Quan on 2007-9-22
tic %测定运行时间开始
B=zeros(size(A)); %生成要存放的矩阵B
L=abs(A); %对矩阵A的每个元素取绝对值
M=reshape(L,1,numel(A)); %将矩阵L变为行向量
for i=1:numel(M)-1 %将相同的元素清零,只留下一个值
for j=i+1:numel(M)
if M(i)==M(j)
M(j)=0;
end
end
end
M=sort(M,'descend'); %处理后按降序排列
R=M(n); %取出绝对值最大n个元素的最小值
V=M(find(M>=R)); %确定绝对值最大的n个元素
for i=1:n;
[S,T]=find(V(i)==L); %取出这n个元素的位置
for j=1:size(S)
B(S(j),T(j))=A(S(j),T(j)); %取出绝对值最大n个元素赋给矩阵
%B,其余为零
end
end
toc %测定运行时间结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -