方法一:利用插值法
function C = maximal2(A)
%查找数组的极大值
D = [-inf,A,-inf]
E = find(diff(sign(diff(D)))== -2 );
F = A(find(diff(sign(diff(D)))== -2));
C = [E;F]
end
方法二:条件讨论法
function B = maximal(A)
%查找数组的极大值
B=[;];
N=1;
while N <=numel(A)
if numel(A)==1
B(1,1)=1;
B(2,1)=A(1);
elseif N==1&&A(1)>A(2)
B(1,1)=1;
B(2,1)=A(1);
elseif N>=2&&N<=numel(A)-1&&A(N)>A(N-1) && A(N)>A(N+1)
B(1,end+1)=N;
B(2,end)=A(N);
elseif N==numel(A)&&A(N)>A(N-1)
B(1,end+1) = N;
B(2,end) = A(N);
end
N =N+1;
disp (B)
end
这篇博客介绍了两种在MATLAB中查找数组极大值的方法。第一种是使用插值法,通过检测符号变化找到极大值位置;第二种是条件讨论法,通过遍历数组并比较相邻元素来确定极大值及其索引。这两种方法都提供了有效的解决方案。
3506

被折叠的 条评论
为什么被折叠?



