作者loket258 (loket)
看板MATLAB
标题[问题]1*N 矩阵区域极值并标注其位置
时间Sun Sep 7 17:02:38 2014
有1*N的矩阵,大概长这样
A = [0 0 0 ...0 1 4 6 3 2 0 0 ... 0 1 2 5 2 2 0 0 .. 0 1 3 2 4 2 0 0 ..]
点点的地方都是零
矩阵大小大概是1*155
我要找到区域极值 6、5、4 的位置
找到矩阵有区域极大值的位置後
在做一些处理
处理 :
先在矩阵 A 上多加一列
使得 A 变为 2*N 之矩阵
假设在 A(1,18) 找到区域极值 6
就使 A(2,18) 的位置上其值为 289
假设在 A(1,63) 找到区域极值 5
使 A(2,63) 的位置上其值为 456
在把矩阵 A 第二列利用线性内插把其他位置的值都算出来
最後再将矩阵 A 之第二列当成一个矩阵 B 之第二列
(矩阵 B 原为 1*N 且跟矩阵 A 一样大)
并画一张图
(纵轴是 B 之第二列,横轴是 B 之第一列)
麻烦大家帮想想,感谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.161.15.91
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1410080560.A.136.html
1F:→ huangkurt: position=find((((A-[0,A(1:end-1)])>=0).* 09/22 09:54
2F:→ huangkurt: ((A-[A(2:end),0])>=0))==1); 09/22 09:54
3F:→ huangkurt: B=interp1(position,A(position),1:N); 09/22 09:55