2017-11-10 6 views
1

波が多層球面に入射する問題をシミュレートしています。表面としてプロットすると周期的なデータが周期的に見えない

forceZ1という名前の変数は、phasefrequencyの2つの変数の関数です。私は方程式を解いて、forceZ1の行列を見つけました。また、私はfrequencyが1 * 3000マトリックスであり、phaseが同じサイズであることを知っています。だから明らかにforceZ1は3000 * 3000になります。

この場合、位相は02*piの間で変化し、データに基づいて、力は周期2πで周期的であるはずです。これは、角度に関して任意の列ベクトルをforceZ1にプロットすることによって検証することができる。

figure(); plot(ang1, forceZ1(:,567)); 

います:

Example periodic output

を私は表面forceZ1frequencyphaseを描くしようとしたが、図では、定期的な挙動を示していません。私は間違って何をしていますか?

Figure not showing periodic behavior

ここに私のプロットのコードは次のとおりです。

Z=forceZ1; 
X=ang1; 
Y=frequency; 

figure 
surf(X,Y,Z,'edgecolor','none') 
shading interp 
view(3) 
xlim([0,2*pi]); 
xlabel('X=phase') 
ylabel('Y=nondimensional frequency') 
zlabel('Z=force in Z direction') 
title('Force-Frequency-Phase') 
colormap jet 

私はあなたの参考のために.mat file of my dataをアップロードしました。

+0

@Niladriありがとう:) –

+0

この問題を解決するには情報が不十分です。まず、方程式が正しく解かれているかどうかはわかりません。第二に、結果を正しく解釈しているかどうかわかりません。第3に、異なるプロットで解決できるものであるかどうかはわかりません(おそらく周期的な振る舞いに減衰指数が乗算されるため、周期的でないように見えます)。可能であれば、プロットしているデータを作成するコードを追加してください。そうでない場合、このデータをドロップボックスなどにマットファイルとしてアップロードしてください。解決している方程式を表示すると、ここでも役立ちます。 –

+0

@ Dev-iL大丈夫私はそれをした、今あなたが私を助けることができますか? –

答えて

1

あなたのforceZ1行列が途中で転置されたようです。データは確かに周期的ですが、周期性の方向はY軸です。

surf(X,Y,Z.','edgecolor','none'); 

をにつながる...:あなたはこのようなあなたのデータをプロットした場合

それは意味を作り始めるだろう、あなたのデータは、位相によって異なる高調波を含んでいるので、

Desired result...

しかし、大きさとオフセットを調整するには、ribbon

など、高調波の形を強調する別のタイプのチャートを使用してみてください。
figure(); ribbon(Z(1:40:end,1:100:end)); 

Ribbon example

...または示された周波数のためのスライダーを使用して、アニメーション、またはインタラクティブなチャートを作成してみてください。

また、データが転置されただけでなく反転された可能性もありますので、正しい結果を得るにはflipを使用する必要があります。

+0

私はこの面を私のために描くことをplzに頼んだ。私はあなたが共有してきたこの技法を認識しているからです。ありがとう:) –

+0

@ hossein.kh 1)私はあなたが望むようにプロットするコードを提供しているだけで、出力を表示していない - 私の答えのコードの最初の行を見てください。 2)単純なサーフェスプロットは、私の意見では、この種のデータを視覚化する最善の方法ではないため、定期的な動作をはるかに明確に示す代替手段を提供しようとしました。 –

+0

大丈夫私はこれらの提案を利用します。 –

関連する問題