matlab 中序列求极值的方法,Matlab中求序列的极值
我們知道,在Matlab中有專門求序列最大值和最小值的函數(shù),分別是Max 和 Min,但是有時(shí)候我們不滿足于求整個(gè)序列的最值,而是對序列的極值,也就是局部的最值感興趣。對于解析函 數(shù),這個(gè)比較簡單,只要令一階倒數(shù)為零求出對應(yīng)的自變量就行了。
然而對于離散的序列,這種方法顯然不可行,一個(gè)比較費(fèi)勁或者說比較笨的方法就是手工查找,仔細(xì)考察序 列的每一個(gè)值,用手工的方法將極值逐一挑出來。然而對于比較長的序列,這種方法顯然不可行。我們期望有一個(gè)自動(dòng)判斷序列中某個(gè)點(diǎn)是極值點(diǎn)的函數(shù),把這個(gè)艱 巨的任務(wù)交給Matlab,讓Matlab幫我們?nèi)フ?#xff0c;這樣可以 節(jié)省我們寶貴的時(shí)間,把更多的時(shí)間放在更有意義的事情上面。
假設(shè)我們有一個(gè)長度為N的序列v(N,1),下面就是Matlab中實(shí)現(xiàn)求v的極值點(diǎn)的命令,其中用到了邏輯數(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 选项菜单和
- 下一篇: dbscan聚类算法matlab_密度聚