j=1からj=200まで自己相関関数r(j)を求めてそのうちのr(80)からr(200)での最大値を求めてその最大値の位置を返すと言うプログラムを実現したいと考えています.
r(1)からr(200)には自己相関関数が求まっているとして最大値の位置を求めます.max関数の第二引数が最大値のインデックスを返すので,
scilab
1 max=0; 2 for j=80:200 3 4 [z,argmax]=max(r(j)); 5 6 end
のようにしてみたのですが,
scilab
1実行されたファイルの 103 行目 2/Users/ 3Wrong number of output arguments. 4
このようなエラーが出ます.この103行目はmax=0のところなのですが,初期値としてmaxに0を入れると言うのは無理なのでしょうか.この場合,z=0とすれば,初期値に0が入っていることになりますか?
追記
z=0で実行してみるとargmaxには1が一つ入っているだけでグラフとしてもずっと0のグラフが表示されます.
最終的には求めた最大値の位置argmaxから基本周波数f0を推定し,f0をプロットします.
scilab
1 period = argmax/16; 2 f0(n) = 1000/period; 3 4
そもそもこれはmax関数を使う方法であっていますか?
回答1件
あなたの回答
tips
プレビュー