2016-04-23 4 views
0

のプロットを生成する、すなわちネスト関数とIはアレイ応答<code>a(theta)</code>とソースの方向<code>theta</code>の関数として与えられるビームフォーマ<code>w</code>の空間応答をプロットするMATLAB

function y = spat_response(w,Delta,theta_range) 

|y(t)|=|w^{H}a(theta)|によって与えられ、w^{H}は、wの複素共役転置を示す。 、私は成功していない

function a = gen_a(M,Delta,theta) 
    for m=1:M 
     a(m)=exp(1i*2*pi*Delta*sin(theta)*(m-1)); 
    end 
end 

空間応答|y(t)|をプロットするために、これは私がこれまでに考案した内容です:a(theta)については

、私はすでに持っている

function y = spat_response(w,Delta,theta_range) 
y(t) = abs(w'*a(theta_range)); 
a = gen_a(M,Delta,theta); 
      function a = gen_a(M,Delta;theta) 
       for m=1:M 
        a(m)=exp(1i*2*pi*Delta*sin(theta)*(m-1)); 
       end  
      end 
fplot(y,[-25,25])   
end 

ネスティングISNを

答えて

1

機能をネストする必要はありません。あなたが唯一の.m外部からspat_response()を呼び出すことができるようになります

function y = spat_response(w,Delta,theta_range) 
    a = gen_a(M,Delta,theta); 
    y(t) = abs(w'*a(theta_range));   
    fplot(y,[-25,25])   
end 

function a = gen_a(M,Delta,theta) 
    for m=1:M 
     a(m)=exp(1i*2*pi*Delta*sin(theta)*(m-1)); 
    end 
end 

、他の機能は、私だけが見る.mスコープ

+0

に利用できるようになります。しかし、私はまだ私の定義(または不足)のtheta_rangeと関数y(t)の私の定義でエラーを取得しています。 –

+0

'y(t)'はspat_responseの中で意味を持ちません。 't'がないので、' y = abs(w '* a(theta_range)) 'を試してください。 – xvan

+0

問題は、 'a'が導入された後にテキストが赤くなるStackOverflowでも見ることができるように、 'a'が正しく定義されていないことです。 theta_rangeを定義することも行われていないもので、私は立ち往生しています。 –