matlab 中序列求极值的方法,Matlab中求序列的极值
我們知道,在Matlab中有專門求序列最大值和最小值的函數(shù),分別是Max 和 Min,但是有時候我們不滿足于求整個序列的最值,而是對序列的極值,也就是局部的最值感興趣。對于解析函 數(shù),這個比較簡單,只要令一階倒數(shù)為零求出對應(yīng)的自變量就行了。
然而對于離散的序列,這種方法顯然不可行,一個比較費勁或者說比較笨的方法就是手工查找,仔細(xì)考察序 列的每一個值,用手工的方法將極值逐一挑出來。然而對于比較長的序列,這種方法顯然不可行。我們期望有一個自動判斷序列中某個點是極值點的函數(shù),把這個艱 巨的任務(wù)交給Matlab,讓Matlab幫我們?nèi)フ?#xff0c;這樣可以 節(jié)省我們寶貴的時間,把更多的時間放在更有意義的事情上面。
假設(shè)我們有一個長度為N的序列v(N,1),下面就是Matlab中實現(xiàn)求v的極值點的命令,其中用到了邏輯數(shù)組下標(biāo)的方法:
N = 100;
v = rand (N,1);
t = 0:length(v)-1;
Lmax = diff(sign(diff(v)))== -2; % logic vector for the local max value
Lmin = diff(sign(diff(v)))== 2; % logic vector for the local min value
% match the logic vector to the original vecor to have the same length
Lmax = [false; Lmax; false];
Lmin = ?[false; Lmin; false];
tmax = t (Lmax); % locations of the local max elements
tmin = t (Lmin); % locations of the local min elements
vmax = v (Lmax); % values of the local max elements
vmin = v (Lmin); % values of the local min elements
% plot them on a figure
plot(t,v);
xlabel('t'); ylabel('v');
hold on;
plot(tmax, vmax, 'r+');
plot(tmin,vmin, 'g+');
hold off;
總結(jié)
以上是生活随笔為你收集整理的matlab 中序列求极值的方法,Matlab中求序列的极值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Studio 选项菜单和
- 下一篇: 什么叫诚实_他爱不爱你,身体最诚实