Create 3D scatter plot from an 120x160 matrix

I have an excel file with a 120 x 160 array and I need to make a 3D scatter plot of the data. I could easily do it on Mathcad but can't get 'scatter3' to work.
Any suggestions will be appreciated!
Thanks

Answers (2)

Perhaps you need to columnate all your variables using (:). Like this:
[x,y,z] = peaks(150);
scatter3(x(:),y(:),z(:),10,z(:))
But if your data are gridded, why not use surf?
surf(x,y,z)
shading flat

2 Comments

scatter3 asks for a vector and doesn't take the matrix array as an input so that problem still remains.
And, unfortunately I don't think a surface plot will work for the project I am working on!
Thanks though!
Yes, by columnating all the inputs with (:), it turns them into vectors. Did you try the example I provided with the peaks data?

Sign in to comment.

[Y, X] = ndgrid(1:size(YourArray,1), 1:size(YourArray,2));
scatter3(X(:), Y(:), YourArray(:));
Notice that Y corresponds to rows not columns

Asked:

on 7 Jul 2017

Commented:

on 10 Jul 2017

Community Treasure Hunt

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

Start Hunting!