24小时热门版块排行榜    

查看: 4170  |  回复: 7

dxyhn1979

银虫 (小有名气)

[交流] 【求助】matlab中如何求一个向量的极大值 已有4人参与

在下想各位高手请教:
matlab中如何求一个向量在自变量区间内的所有的极大值以及对应点的自变量的值?
自变量为时间t=0:1:400;
向量V=[ -59.9000

  -66.1788
  -67.9221
  -67.7066
  -67.3257
  -67.4786
  -68.2176
  -69.1629
  -69.7605
  -69.5510
  -68.3500
  -66.3147
  -63.8543
  -61.3557
  -58.8394
  -54.9172
    2.6585
    5.6446
  -41.6950
  -76.4487
  -76.0107
  -75.1546
  -73.9862
  -72.7260
  -71.7017
  -71.1654
  -71.1299
  -71.3273
  -71.3127
  -70.6573
  -69.1497
  -66.9086
  -64.3159
  -61.7524
  -59.2648
  -55.7941
  -25.3802
   12.8929
  -34.6773
  -76.3394
  -76.0765
  -75.2649
  -74.1454
  -72.9239
  -71.9162
  -71.3722
  -71.3112
  -71.4761
  -71.4310
  -70.7518
  -69.2277
  -66.9768
  -64.3818
  -61.8298
  -59.3952
  -56.2190
  -36.5000
   17.8293
  -30.3985
  -76.0782
  -76.1134
  -75.3273
  -74.2362
  -73.0376
  -72.0403
  -71.4925
  -71.4173
  -71.5637
  -71.5010
  -70.8082
  -69.2747
  -67.0182
  -64.4223
  -61.8781
  -59.4777
  -56.4819
  -41.4130
   21.4158
  -27.2884
  -75.6619
  -76.1396
  -75.3717
  -74.3012
  -73.1196
  -72.1301
  -71.5798
  -71.4945
  -71.6276
  -71.5523
  -70.8497
  -69.3094
  -67.0491
  -64.4527
  -61.9144
  -59.5402
  -56.6794
  -44.2394
   24.2354
  -24.7794
  -75.0499
  -76.1602
  -75.4071
  -74.3533
  -73.1854
  -72.2024
  -71.6503
  -71.5569
  -71.6794
  -71.5941
  -70.8835
  -69.3379
  -67.0748
  -64.4782
  -61.9452
  -59.5927
  -56.8343
  -46.1557
   26.6609
  -22.5630
  -74.2018
  -76.1780
  -75.4382
  -74.3987
  -73.2430
  -72.2658
  -71.7123
  -71.6120
  -71.7251
  -71.6311
  -70.9136
  -69.3633
  -67.0975
  -64.5006
  -61.9719
  -59.6373
  -56.9668
  -47.6247
   28.8704
  -20.4329
  -73.0127
  -76.1946
  -75.4670
  -74.4415
  -73.2974
  -72.3259
  -71.7711
  -71.6644
  -71.7688
  -71.6663
  -70.9424
  -69.3877
  -67.1195
  -64.5226
  -61.9986
  -59.6823
  -57.0945
  -48.8632
   30.9967
  -18.2464
  -71.3028
  -76.2111
  -75.4963
  -74.4849
  -73.3526
  -72.3870
  -71.8311
  -71.7178
  -71.8134
  -71.7025
  -70.9719
  -69.4128
  -67.1420
  -64.5450
  -62.0256
  -59.7264
  -57.2164
  -49.9878
   33.2012
  -15.7928
  -68.8036
  -76.2288
  -75.5279
  -74.5323
  -73.4132
  -72.4543
  -71.8972
  -71.7768
  -71.8628
  -71.7426
  -71.0048
  -69.4409
  -67.1676
  -64.5708
  -62.0568
  -59.7792
  -57.3616
  -51.0989
   35.4921
  -12.7970
  -65.0057
  -76.2491
  -75.5661
  -74.5885
  -73.4853
  -72.5346
  -71.9764
  -71.8477
  -71.9222
  -71.7911
  -71.0447
  -69.4748
  -67.1987
  -64.6015
  -62.0934
  -59.8394
  -57.5278
  -52.2607
   37.7444
   -8.6664
  -59.1274
  -76.2742
  -75.6157
  -74.6632
  -73.5816
  -72.6422
  -72.0828
  -71.9432
  -72.0025
  -71.8567
  -71.0989
  -69.5215
  -67.2410
  -64.6442
  -62.1448
  -59.9232
  -57.7462
  -53.5966
   33.6403
   -1.8652
  -49.9180
  -76.3044
  -75.6923
  -74.7791
  -73.7320
  -72.8112
  -72.2508
  -72.0947
  -72.1304
  -71.9618
  -71.1863
  -69.5971
  -67.3105
  -64.7148
  -62.2303
  -60.0612
  -58.0883
  -55.2992
  -32.1447
   13.9198
  -33.9835
  -76.1587
  -75.8496
  -75.0210
  -74.0499
  -73.1729
  -72.6138
  -72.4249
  -72.4118
  -72.1954
  -71.3828
  -69.7697
  -67.4713
  -64.8787
  -62.4271
  -60.3721
  -58.8055
  -57.9294
  -58.7668
  -63.1446
  -67.6137
  -68.9118
  -68.1375
  -66.5092
  -64.9202
  -64.0292
  -64.2750
  -65.6637
  -67.4920
  -68.8186
  -69.0871
  -68.1833
  -66.3434
  -64.0317
  -61.7041
  -59.5680
  -57.3789
  -52.6442
   37.6239
   -6.7767
  -56.4829
  -76.2806
  -75.6314
  -74.6871
  -73.6124
  -72.6768
  -72.1171
  -71.9741
  -72.0286
  -71.8781
  -71.1167
  -69.5369
  -67.2552
  -64.6589
  -62.1633
  -59.9551
  -57.8317
  -54.0538
   21.6409
    1.2902
  -46.2404
  -76.3102
  -75.7258
  -74.8299
  -73.7983
  -72.8862
  -72.3256
  -72.1624
  -72.1878
  -72.0092
  -71.2259
  -69.6316
  -67.3426
  -64.7470
  -62.2686
  -60.1229
  -58.2407
  -55.9542
  -45.2468
   24.3565
  -24.9062
  -74.9038
  -75.9457
  -75.1715
  -74.2509
  -73.4047
  -72.8493
  -72.6413
  -72.5981
  -72.3519
  -71.5164
  -69.8887
  -67.5841
  -64.9947
  -62.5662
  -60.5856
  -59.2534
  -59.1339
  -61.6533
  -66.1022
  -68.6882
  -68.9069
  -67.6522
  -65.7714
  -64.0012
  -62.9467
  -63.1284
  -64.7371
  -66.9870
  -68.6478
  -69.1008
  -68.2924
  -66.5102
  -64.2524
  -62.0176
  -60.1253
  -58.7917
  -58.5857
  -61.1633
  -66.0792
  -68.9112
  -69.1702
  -67.9092
  -66.0207
  -64.2548
  -63.2177
  -63.4022
  -64.9461
  -67.0827
  -68.6617
  -69.0748
  -68.2482
  -66.4564
  -64.1886
  -61.9338
  -59.9875
  -58.4823
  -57.6800
  -58.8155
  -63.7369
  -68.1304
  -69.2030
]
图片
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxyhn1979

银虫 (小有名气)

用findmax函数可以求出所有极大值,但是不知道如何求极大值处对应的自变量t的值,急求助。谢谢
2楼2010-06-14 10:30:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

★ ★
dxyhn1979(金币+7):太感谢了,我试了,可以,真是简洁啊,超赞 2010-06-14 14:12:57
robert2020(金币+2):辛苦了! 2010-06-14 17:46:59
引用回帖:
Originally posted by dxyhn1979 at 2010-06-14 10:27:21:
在下想各位高手请教:
matlab中如何求一个向量在自变量区间内的所有的极大值以及对应点的自变量的值?
自变量为时间t=0:1:400;
向量V=[ -59.9000

  -66.1788
  -67.9221
  -67.7066
  ...

一般可以根据极值的定义 导数符号变化或者 局部最大最小来写函数
一下是你的数据测试  方法是以前在网上偶遇的 觉得非常简洁 赞一下那位未知的大大 原理就是导数符号变化啦
极大值位置
a=find(diff(sign(diff(V)))==2)+1
极值点V(a)
极小值位置
b=find(diff(sign(diff(data)))==-2)+1
极值点V(a)
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
3楼2010-06-14 12:28:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxyhn1979

银虫 (小有名气)

robert2020:建议使用“引用回复该贴”,便于对方收到你的信息。 2010-06-14 17:47:31
请问。为什么末尾要加1呢?是不是因为区间是从零取的啊?要是区间从非零取,比如t=[8:1:400],就不用加1了吧?还有为什么是恒等于2或-2呢?请赐教。
4楼2010-06-14 14:17:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

★ ★
robert2020(金币+2):辛苦了! 2010-06-14 17:47:54
dxyhn1979(金币+3):解释的详细,严重谢过 2010-06-14 19:50:00
引用回帖:
Originally posted by dxyhn1979 at 2010-06-14 14:17:40:
请问。为什么末尾要加1呢?是不是因为区间是从零取的啊?要是区间从非零取,比如t=[8:1:400],就不用加1了吧?还有为什么是恒等于2或-2呢?请赐教。

理解起来也不难的 主要是对符号函数sign进行diff嘛 sign只有+1 和-1取值 求两次diff就只有2和-2啦 只是我举的一个极大值的例子
>> V=[1 2 3 7 5 4 8 6 0 7 8]

V =

     1     2     3     7     5     4     8     6     0     7     8

>> diff(V)

ans =

     1     1     4    -2    -1     4    -2    -6     7     1

>> sign(ans)

ans =

     1     1     1    -1    -1     1    -1    -1     1     1

>> diff(ans)

ans =

     0     0    -2     0     2    -2     0     2     0

>> find(ans==2)

ans =

     5     8

>> V(ans+1)  加1的原因是因为diff逐差的时候数据少了啊

ans =

     4     0
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
5楼2010-06-14 15:32:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ayismas

木虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
自己做的一个判断向量的极大值、极小值的位置和值的函数,a是要测试的向量,maxvalpos表示极大值所处的位置,minvalpos表示极小值所处的位置,maxval表示相对应的极大值,minval表示相对应的极小值程序如下,效率不高请包涵:
a=rand(1000,1);
n=length(a);
a1=a(1n-2));
a2=a(2n-1));
a3=a(3:n);
k=zeros((n-2),1);
for i=1n-2)
    if(a1(i)<=a2(i)&a2(i)>=a3(i));
        k(i)=1;
    else if (a1(i)>=a2(i)&a2(i)<=a3(i));
        k(i)=-1;
        else
            k(i)=0;
    end
    end
end
maxvalpos=find(k==1)+1;
mavval=a(maxvalpos)
minvalpos=find(k==-1)+1;
minval=a(minvalpos)
6楼2015-01-14 23:57:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ayismas

木虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
6楼: Originally posted by ayismas at 2015-01-14 23:57:54
自己做的一个判断向量的极大值、极小值的位置和值的函数,a是要测试的向量,maxvalpos表示极大值所处的位置,minvalpos表示极小值所处的位置,maxval表示相对应的极大值,minval表示相对应的极小值程序如下,效率不 ...

如果t是从1开始计数的话(在楼主的t值上加以),相应的极大值出现的位置和极大值分别如下:
位置   极大值
5        -67.3257000000000
18        5.64460000000000
27        -71.1299000000000
38        12.8929000000000
47        -71.3112000000000
58        17.8293000000000
67        -71.4173000000000
78        21.4158000000000
87        -71.4945000000000
98        24.2354000000000
107        -71.5569000000000
118        26.6609000000000
127        -71.6120000000000
138        28.8704000000000
147        -71.6644000000000
158        30.9967000000000
167        -71.7178000000000
178        33.2012000000000
187        -71.7768000000000
198        35.4921000000000
207        -71.8477000000000
218        37.7444000000000
227        -71.9432000000000
238        33.6403000000000
247        -72.0947000000000
259        13.9198000000000
277        -57.9294000000000
285        -64.0292000000000
298        37.6239000000000
307        -71.9741000000000
318        21.6409000000000
327        -72.1624000000000
339        24.3565000000000
357        -59.1339000000000
365        -62.9467000000000
377        -58.5857000000000
385        -63.2177000000000
397        -57.6800000000000
7楼2015-01-15 00:02:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lihe168

银虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
6楼: Originally posted by ayismas at 2015-01-14 23:57:54
自己做的一个判断向量的极大值、极小值的位置和值的函数,a是要测试的向量,maxvalpos表示极大值所处的位置,minvalpos表示极小值所处的位置,maxval表示相对应的极大值,minval表示相对应的极小值程序如下,效率不 ...

这个方法太复杂了啊。之前学C的时候才用这个。
8楼2018-09-06 14:41:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dxyhn1979 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学工程321分求调剂 +7 大米饭! 2026-03-15 7/350 2026-03-16 10:25 by 了了了了。。
[考研] 0703化学调剂 290分有科研经历,论文在投 +7 腻腻gk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[考研] 0703化学调剂 ,六级已过,有科研经历 +4 曦熙兮 2026-03-15 4/200 2026-03-15 18:01 by JourneyLucky
[考研] 294求调剂 +3 Zys010410@ 2026-03-13 4/200 2026-03-15 10:59 by zhq0425
[考研] 289求调剂 +5 步川酷紫123 2026-03-11 5/250 2026-03-15 00:45 by kruisytel
[考研] 255求调剂 +3 李嘉慧, 2026-03-12 4/200 2026-03-14 16:58 by 有只狸奴
[考研] 297求调剂 +4 学海漂泊 2026-03-13 4/200 2026-03-14 11:51 by 热情沙漠
[考研] 331求调剂(0703有机化学 +5 ZY-05 2026-03-13 6/300 2026-03-14 10:51 by Jy?
[考研] 330求调剂 +3 ?酱给调剂跪了 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
[考研] 333求调剂 +3 球球古力 2026-03-09 3/150 2026-03-14 01:57 by JourneyLucky
[考研] 一志愿安徽大学材料工程专硕313分,求调剂的学校 +8 Yu先生 2026-03-10 10/500 2026-03-14 01:04 by JourneyLucky
[基金申请] 有必要更换申报口吗 20+3 fannyamoy 2026-03-11 3/150 2026-03-14 00:52 by zhanghaozhu
[考研] 求调剂,一志愿江南大学环境工程085701 +3 Djdjj12 2026-03-10 4/200 2026-03-14 00:31 by JourneyLucky
[考研] 求材料调剂 085600英一数二总分302 前三科235 精通机器学习 一志愿哈工大 +4 林yaxin 2026-03-12 4/200 2026-03-13 22:04 by 星空星月
[考研] 一志愿西南交大,材料专硕317求调剂 +5 lx8568 2026-03-11 5/250 2026-03-13 21:43 by peike
[考研] 【0856】化学工程(085602)313 分,本科学科评估A类院校化学工程与工艺,诚求调剂 +7 小刘快快上岸 2026-03-11 7/350 2026-03-13 16:06 by ruiyingmiao
[考研] 304求调剂(085602一志愿985) +12 化工人999 2026-03-09 12/600 2026-03-13 12:02 by JourneyLucky
[考研] 081200-11408-276学硕求调剂 +3 崔wj 2026-03-12 4/200 2026-03-12 19:33 by 求调剂zz
[考研] 哈工大材料324求调剂 +6 闫旭东 2026-03-10 8/400 2026-03-10 22:49 by 星空星月
[考研] 298求调剂 +3 Vv呀! 2026-03-10 3/150 2026-03-10 22:40 by 剑诗杜康
信息提示
请填处理意见