flocmm.m

来自「A MATLAB tool for analysis of Transient 」· M 代码 · 共 38 行

M
38
字号
function [maxin, minin] = flocmm(A)

% flocmm  -finds index of first local maxima and next local minima of columns
%
%  [maxin, minin] = flocmm(A) 
%
% in:   A       data matrix
%
% out:  maxin   index of first local maxima (row vector)
%       minin   index of first local minima (row vector)


% (c) Pekka Kumpulainen 20.12.1993

[m,n] = size(A);
maxin = zeros(1,n);
minin = maxin;

dA = diff(A);

for ii = 1:n;
  maxima = find(diff(-dA(:,ii)>=0)==1)+1;
%  maxima = findp(-dA(:,ii),0);
  if ~isempty(maxima);
    maxin(ii) = maxima(1);
  else
    [mv ,mi] = max(A(:,ii));
    maxin(ii) = mi;
  end
%  minima = findp(dA(:,ii),0);
  minima = find(diff(dA(:,ii)>=0)==1)+1;
  tmp = minima(minima>maxin(ii));
  if isempty(tmp); minin(ii) = m;
    else; minin(ii) = tmp(1);
  end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?