From: Christian Baumberger on
Hi all,

we have a data set with x, y z - coordinates and should somehow visualize the data in 3d. Is there a way to visualize the density of the data? Similar to how it is done for MRI data. The data set consists of a matrix n x 3, where n is the number of data points. The columns represent the three coordinates x, y, and z. The goal would be to show regions of different density with different colors, so that maxima can easily be found in the data set.

Thanks for your help!

Christian and Thomas
From: Sean on
"Christian Baumberger" <chribabe(a)gmail.com> wrote in message <hsg4l0$408$1(a)fred.mathworks.com>...
> Hi all,
>
> we have a data set with x, y z - coordinates and should somehow visualize the data in 3d. Is there a way to visualize the density of the data? Similar to how it is done for MRI data. The data set consists of a matrix n x 3, where n is the number of data points. The columns represent the three coordinates x, y, and z. The goal would be to show regions of different density with different colors, so that maxima can easily be found in the data set.
>
> Thanks for your help!
>
> Christian and Thomas

First off, don't you need a 4th dimension i.e. the intensity? [x y z intensity]

Create a 3d matrix:
let's call it M3D

>>M3D = zeros(max(your_nx3_matrix));
>>M3D(sub2ind(size(M3D), your_nx3(:,1), your_nx3(:,1))) = intensity;

to visualize quickly:
>>implay(M3D)

To find maxima:
Try different intensity thresholds and visualize with an isosurface/patch e.g.

>>M3Dbw = M3D>170; %Everything greater than intensity 170 is white, else black
>>fv = isosurface(M3Dbw,0);
>>patch(fv,'FaceColor','blue','EdgeColor','none');