Plot matrix as scatter points with colorbar
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Shan Chu
am 3 Okt. 2018
Kommentiert: Star Strider
am 3 Okt. 2018
Dear all
I have a vector 1-by-N x, a vector 1-by-M y, and a matrix N-by-M z (complex).
So how could I plot the matrix Z as scatter points corresponding to x and y, where the colorbar represents the abs(z). I have tried scatter3 but it only works when z is a vector, not a matrix. Thanks
0 Kommentare
Akzeptierte Antwort
Star Strider
am 3 Okt. 2018
One approach is to use meshgrid to create matrices out of ‘x’ and ‘y’, then plot all of them as vectors, using the (:) subscript notation to force them all to become column vectors:
N = 5;
M = 8;
x = 1:N;
y = 1:M;
[X,Y] = meshgrid(x,y);
z = randn(N,M) + 1j*randn(N,M);
figure
scatter3(X(:), Y(:), abs(z(:)), 25, abs(z(:)), 'filled', 'Marker','p')
colormap(jet(numel(z)))
colorbar
Experiment to get the result you want.
2 Kommentare
Star Strider
am 3 Okt. 2018
As always, my pleasure.
Thank you.
Using the reshape function also would work. The (:) notation is easier and more efficient.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Colormaps finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!