国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 4382|回復: 4

[matlab] 這段程序出錯,不清楚怎么改

[復制鏈接]
1#
發表于 2008-8-25 11:14:56 | 只看該作者 |倒序瀏覽 |閱讀模式
下面是我編的M文件的程序,主要是求一維數組s的最大值和索引位置,然后加不同寬度的窗,求出窗里信號能量后與總能量求比值。我編的程序中s是小波包分析的高頻信號,為了簡化程序段,我用5000個隨機數來代替。編譯的時候for循環好像根本就沒有執行,不知道是為什么。請前輩們幫忙看看,不勝感激!
, Y5 B' j# L. M' |3 Ds=zeros(1,5000);
" S; Y3 }1 i& n$ P3 os=rand(1,5000);
" S3 n) G  i8 [% k% k* gn=length(s);
7 z0 S* A- n: ]) @8 w# _, Cmax=0.0;! c8 b; ?! W8 R5 R& i
index=0;
6 W) l0 C! A7 m6 _& \% F/ r! ufor i=1:n
$ g! P$ K* m2 k6 Q if  max<s(i)
. B/ p; U1 u4 l: W$ p3 G/ i     max=s(i);
7 M9 s; ]- X2 A. n# \+ s- E+ p     index=i;
' k# y8 z% D# K: r" m9 D  else% |/ r. e! ^1 n* |- z
  end) L" f2 u# y7 L3 H0 z2 y4 _$ s
end   ; k; R7 p' {% W, L; j% N
small=100;, b+ q- H+ d  [$ V4 T  @& A1 l
wenergys=sum(s(index-small:index+small).^2);* T' K" w! S( x8 J! ]
middle=150;8 c0 Y- [0 a0 q) [$ ?6 r
wenergym=sum(s(index-middle:index+middle).^2);
' p) u2 c' ?+ b( I+ M1 p3 Glarge=200;
3 ?4 L( ?. ]2 d% J% g1 cwenergyl=sum(s(index-large:index+large).^2);+ P# K& O: M9 i+ _6 _
energy=sum(s.^2);4 Z, P0 J4 w; _& I
ratios=wenergys/energy;$ s6 x% R4 `6 C& b; @! R
ratiom=wenergym/energy;/ G8 x9 Y. V+ H0 L7 t
ratiol=wenergyl/energy;% {% r+ w2 s& S, d4 l4 \& ^% W
m=max*100000;* O5 v( h2 E. R6 ]1 `3 N  {
ws=wenergys*100000;
+ A: |+ q+ H& j1 c1 Rwm=wenergym*100000;
5 R% c' M6 c7 ~+ Bwl=wenergyl*100000;* I% C7 R2 H+ x; I  g
e=energy*100000;  X& C  m$ `" F6 H
a=[m,index,e,ws,wm,wl,ratios,ratiom,ratiol];
回復

使用道具 舉報

2#
發表于 2008-8-26 13:20:56 | 只看該作者
求一維數組s的最大值和索引位置 max 和index可以求出來呀
' N- J5 m; f/ ]也就是執行了for循環了
4 T  `! x' m: C# a- ^. c4 ?可能計算機計算速度快  我們感覺不到等待的時間    9 j( B$ S, W; Y6 m$ D  a* e
如果是5000個數字迭代的話肯能時間很長

評分

參與人數 1威望 +10 收起 理由
老鷹 + 10

查看全部評分

3#
 樓主| 發表于 2008-8-28 16:09:39 | 只看該作者

回復 2# 小土匪 的帖子

其實我的這個程序是插在labview里的腳本。我一開始用的就是[max,index]=max(s);但是我是把程序作為腳本插入在labview程序里,labview提示出錯:subscript indices must either be real positive integers or logicals. 然后就不給我執行了,改成for循環也一樣。5000個數字迭代時間并不長,我在MATLAB里面試過,瞬間出結果,但是在labview里編譯就是通不過。我現在懷疑是不是labview和MATLAB的兼容做的不夠好。
4#
發表于 2008-8-29 17:20:28 | 只看該作者
labview還沒接觸過1 w" z5 x* c: Q, q
是不是取隨機數的時候  最大值的標號正好小于200了  這樣的話wenergyl=sum(s(index-large:index+large).^2)這步是不是會出錯?
+ ^. V* T+ D& y( V5 {( K0 {$ I1 C$ v
提示也正好是indices must either be real positive integers or logicals  p; Z6 j, ^& I+ o. x
你再修改下隨即數?
5#
發表于 2008-8-29 17:23:09 | 只看該作者
Subscript indices must either be real positive integers or logicals
. B, N5 m& P# r+ f' ER$ P# O9 A3 s
# x: O. j: t7 B# f0 F/ t" e中文解釋:下標索引必須是正整數類型或者邏輯類型4 ?# J' N+ m# H5 _  |8 x$ t
W7 b# p# ]3 I' k8 m# \0 X: N+ Q5 E7 j; o! m
出錯原因:在訪問矩陣(包括向量、二維矩陣、多維數組,下同)的過程中,下標索引要么從 0 開始,要么出現了負數。注:matlab 的語法規定矩陣的索引從 1 開始
9 j/ `: _5 v* w& F. w6 O$ ^: }; j/ Z/ f  r/ n1 [9 J: o
/ }, A" r' k& g" S" A0 }
這是網上搜到的資料   借鑒下
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-9-5 05:54 , Processed in 0.066346 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表