Plot 3D matrix with complex values

I have a matrix of complex values (a i +b), with shape 128 * 8 * 121. How can I plot it, please ?
Thank you so much in advance :)

6 件のコメント

darova
darova 2019 年 9 月 23 日
What those values represent?
nour besbes
nour besbes 2019 年 9 月 23 日
It represent the result of the stft matlab function
darova
darova 2019 年 9 月 23 日
Where those values should be on the graph?
nour besbes
nour besbes 2019 年 9 月 23 日
I want to have a graph like this one.
stft.png
darova
darova 2019 年 9 月 23 日
What do dimension mean? (128 x 8 x 121) ?
nour besbes
nour besbes 2019 年 9 月 23 日
it's a 3D matrix. It means 8 matrix of (128 rows X 121 columns ) size.

サインインしてコメントする。

回答 (3 件)

Matt J
Matt J 2019 年 9 月 23 日
編集済み: Matt J 2019 年 9 月 23 日

1 投票

One way,
plot(a(:),b(:),'x')
darova
darova 2019 年 9 月 23 日

0 投票

Try pcolor
pcolor(A(:,1,:)) % display first matrix
Sara James
Sara James 2019 年 10 月 21 日

0 投票

As another mentioned previously, use pcolor. Note that since your signal is complex, you will have to take the absolute value first as follows:
fs = 3000; % Sampling frequency (Hz)
t = 0:1/fs:1-1/fs; % Time (sec)
x = [exp(2j*pi*100*cos(2*pi*2*t))+randn(size(t))/100; ...
exp(2j*pi*100*cos(0.5*pi*2*t))+randn(size(t))/100; ...
exp(2j*pi*100*cos(1*pi*2*t))+randn(size(t))/100]'; % Multi-channel signal
[S,F,T] = stft(x,fs,'Window',hamming(128,'periodic'),'OverlapLength',50);
smag = mag2db(abs(S)); % Convert to dB
caxisLims = max(smag(:)) + [-60 0]; % Color axis limits
figure('Name','STFT')
numChannels = size(x,2);
for ii = 1:numChannels
subplot(2,2,ii)
pcolor(T,F,smag(:,:,ii))
xlabel('Time (s)')
ylabel('Frequency (Hz)')
shading flat
hC = colorbar;
hC.Limits = caxisLims;
hC.Label.String = 'Magnitude (dB)';
title(sprintf('Channel %d',ii))
end
sgtitle('Spectrogram')

カテゴリ

ヘルプ センター および File ExchangeLine Plots についてさらに検索

質問済み:

2019 年 9 月 23 日

回答済み:

2019 年 10 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by