ヒストグラムの時間変化グラフの出力
18 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
masahiro kida
le 21 Juil 2017
Réponse apportée : michio
le 22 Juil 2017
1秒間でN=1000点の値を時系列で記録した電圧信号があると仮定した場合、 x軸は時間、y軸は電圧、z軸は1秒間の信号を0.1秒毎に10分割したヒストグラムの度数を色で、 平面に表現する方法はありませんか?
以下が元信号です。
Fs = 1/1000 ; % サンプリング周波数
t = (0:1:999) * Fs; % 時間軸
y = sin(2*pi*1*t); % 信号
使っているversionは以下です。
--------------------------------------------------------------------------------------------------
MATLAB バージョン: 9.2.0.556344 (R2017a)
MATLAB ライセンス番号: DEMO
オペレーティング システム: Microsoft Windows 10 Pro Version 10.0 (Build 14393)
Java バージョン: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
--------------------------------------------------------------------------------------------------
MATLAB バージョン 9.2 (R2017a)
3 commentaires
Réponse acceptée
michio
le 22 Juil 2017
x軸は0sから0.1s、0.1sから0.2s…のそれぞれの区間、y軸は電圧に対応。ビン数の要素数をヒートマップで。こんなイメージでしょうか。
もっと良いやり方があるのではとは思いながら、、 histocounts 関数 と heatmap 関数 を組み合わせて半ば無理やり作ってみましたが、ラベルを思い通りにするのに多少手間がかかるかもしれませんね。
Fs = 1/1000;% sampling frequency
t = (0:1:999)*Fs;% Time axis
Y = sin(2*pi*1*t);% signal
nbins = 20; % 電圧方向のビン数
[~,edges] = histcounts(Y,nbins); % エッジ計算
YY = reshape(Y, [], 10); % 時系列方向に10個に分割
counts = zeros(nbins,10); % ビンの要素数用の変数
for ii=1:10
counts(:,ii) = histcounts(YY(:,ii),edges);
end
% heatmap(xvalues,yvalues,cdata);
heatmap(1:10, edges(1:end-1), counts)

0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur データ分布プロット dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!