2017-07-12 6 views
-2

実験データから周波数応答をプロットしようとしたときに問題が発生しました。私は、振幅(21 * 101)と周波数のスキャニングの開始と終了の値を持つ配列の多次元配列を持っています。 (* 1 21)MATLABでプロットすると指数関数形式の値がクラッシュする

このコードのようなデータのために正常に動作して:等秒の最初のセル、5678で5667、しかし、それは5.478e + 5と4.999e + 5のようなデータにクラッシュ:

A = load('Amplitude.mat'); 
Amp = A.Amplitude; 
Fs = load('Fs.mat') 
Fe = load('Fe.mat') 

for i = 1:1:21 
    f1 = Fs(i):10:Fe(i);//column 21*1 
    grid on 
    y1 = plot(f1,AmpA1(i,:)); 
    hold on 
end 

f1が(非指数関数形の数字の場合のように)アレイである21 * 1 instaedエラーが発生し、単一の値、次のようになる。

Index exceeds matrix dimensions.

Iは、(はsprintfを使用しようとしました)指数形式を変えるためには助けにならなかった。 どうしたらいいですか?

+0

参照[、最小完全、かつ検証例](HTTPS:/ /stackoverflow.com/help/mcve) –

+0

@SardarUsama、私はこのデータを投稿することを許可されているのか分かりません。 私は同様の例を作り、それを投稿に追加しようとします。 – TheDoctor

+0

@SardarUsama、テストファイルを追加してコードを更新しました。 – TheDoctor

答えて

2

ライン

Fs = load('Fs.mat') 
Fe = load('Fe.mat') 

ます変数としてFsFeをスカラー構造として定義し、それぞれのマットファイルの変数をフィールドとしてロードします。 FsFeにインデックスを設定すると、値が1より大きいため、エラーが発生します。

ではなく

s = load('Fs.mat'); Fs = s.Fs; 
s = load('Fe.mat'); Fe = s.Fe; 

を(これはマットファイル内の関心の変数は、それぞれFsFeを命名していることを前提として)試してみてください

関連する問題