線データを積み重ねてplot

2 visualizzazioni (ultimi 30 giorni)
綾一 栗原
綾一 栗原 il 27 Giu 2024
Commentato: 綾一 栗原 il 2 Lug 2024
STFTした強度周波数データを,手前から奥に積み重ねてplotしたいです
イメージとしてはこのような図です(pが振幅スペクトル,fが周波数,tが時間)
よろしくお願いします.

Risposta accettata

Atsushi Ueno
Atsushi Ueno il 28 Giu 2024
Modificato: Atsushi Ueno il 29 Giu 2024
mesh, meshzwaterfall など、surface & mesh系プロットで描けます。
両者の違いはデフォルトの描画スタイルや戻り値のオブジェクトです。
強度周波数データ (1次元配列) を積み重ねて2次元配列 y にしてください。
描画には 2 次元のグリッド座標も必要です。詳細は meshgrid を参照願います。
カメラ座標は view 関数や figure 上のマウス操作でグリグリ動かせます。
[t,x] = meshgrid(-3:.125:3); % グリッド座標
y = abs(peaks(t,x)); % 高さデータ
mesh(t,x,y,'MeshStyle','column','FaceAlpha',0);
% MeshStyle: 表示するエッジ:'row':横線のみ,'column':縦線のみ, 'both':両方
% FaceAlpha: 透明度:0が透明、1が不透明、0<FaceAlpha<1が半透明
  4 Commenti
Atsushi Ueno
Atsushi Ueno il 29 Giu 2024
出来上がった色データをみて気づいたのですが、色データとグリッドデータは同じ構造ですね。
なので meshgrid 関数を活用して色データを作るのも一つの手だと思います。
綾一 栗原
綾一 栗原 il 2 Lug 2024
meshgridで色データがうまく作れなかったので,かなり強引にやりました.
%色データ
a=permute(colormap('lines'),[3,1,2]); %色情報生成
b=repmat(a,[size(y,1),round(size(y,2)/size(x,2)+1),1]); %無理やり配列サイズに延長
b=b(:,1:size(y,2),:); %余った分をトリミング
%plot
mesh(t,x,y,b,'MeshStyle','column','FaceAlpha',0);
%format
xlim([0,0.2])
ylim([1,1500])
set(gca,'YDir','reverse')
set(gca, 'XAxisLocation','origin' );
view([-75 25])
結果はこのようになりました
ちょっと見にくいですが狙い通りには行きました!
ありがとうございました!!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su ビッグ データの処理 in Help Center e File Exchange

Prodotti


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!