2016-06-27 10 views
0

を扱うTSA PARCORと配列私はオクターブではかなり初心者プログラマだと、まだデータ構造を処理する方法を把握しようとしています。私は、このコードでtsaパッケージからacovfを使用しようとすると、次のエラーを取得しています:オクターブのヘルプ:

>> pkg load tsa 
>> parcorr = parcor(acovf(data,5)); 
>> parcorr 
parcorr = [](250x0) 

誰かがそれが何を意味するのか説明できますか?私は結果で個々の要素にアクセスしようとすると私は、次を得る:

>> parcorr(2:5) 
error: A(I): index out of bounds; value 5 out of bound 0 

はそれだけで私のデータの最初の4つの高次の自己相関を与えるべきではないでしょうか。誰かが何が起こっているか説明できますか?

答えて

0

エラーメッセージは、単にあなたがそれを持っていない位置に配列にアクセスしようとすることを意味し(例えばPOSを。2/3 2/2配列、または空の配列中の任意の位置で)。ほとんどの場合、dataは( - あなたはそれを台無しにし、それが空であるか類似していることが考えられ、それはあなたが期待するものであるかどうかを確認するためにnumel(data)またはsize(data)を見て)あなたはそれがacovfにそれを渡す前になりたいものではありません。

pkg load tsa 

# with 1D data 
data = sin(0:0.1:100); 
numel(data) 
parcorr = parcor(acovf(data,5));    
plot(parcorr); 

# with 2D data 
data2 = [sin(0:0.1:100);cos(0:0.1:100)]; 
size(data2) 
parcorr = parcor(acovf(data2,5));    
plot(parcorr'); 
+0

あなたはlength' 'の使用を推奨してはいけません。代わりに 'numel'を使うべきです。 – carandraug

+0

本当に、私は答えを更新しました。これを指摘するためのThx! – geekoverdose

0

おかげであなたの助けのためにたくさん:

はここで働いて、最小限の例(これにあなたを比較する)です。私は問題を理解したと思う。私はacovfを供給し、列ベクトルをPARCORた一方Ovtaveは、行ベクトルを探していました。一度それをデータに変更すると、うまくいきました。これは、Octaveがベクトルの向きに非常に特化していることは本当に奇妙です。それは奇妙な定義、最長寸法の長さを持っているので

関連する問題