Reduce discretisation in matrix
13 views (last 30 days)
Show older comments
Hello everybody.
I need your help. I have a matrix representing 200000 points. x, y and z coordinates and a pressure value for each point. I manage to vizualise my points with a colorbar for pressure values using plot3c ( from Uli Theune, University of Alberta) but the generated figure is too heavy and my computer crashes. I would like to reduce the number of points and have less pressure values? I would like to plot the same figure but "pixelized". I hope I make mylself clear. If you need some extra info please don't hesitate.
Thank you!
4 Comments
Answers (1)
Star Strider
on 3 Jan 2015
That is actually easier than I thought it would be. If you want to take every 4th row for instance:
decmat = matrix(1:4:end, :);
or with an example:
X = repmat(1:25, 4, 1)';
Xdec = X(1:4:end,:);
Your ‘decimated’ matrix ‘decmat’ or ‘Xd’ is now ¼ the size of your original matrix. You can choose different intervals or even random rows to put into your ‘decimated’ matrix.
Is this what you want to do?
2 Comments
Star Strider
on 4 Jan 2015
You may have to experiment with this with your data, but in this simulation at least, it works and should give you the means of every 5 rows in the ‘Xm’ matrix:
X = repmat(1:30, 4, 1)'; % Created Simulated Data Matrix
Xs = reshape(X, 5, [], 4) % Reshape To Allow Mean Calculations
Xp = permute(Xs, [1 3 2]) % ‘Transpose’ 3D MAtrix
Xm = squeeze(mean(Xs,1)) % Calculate Means
See Also
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!