Reduce discretisation in matrix
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Star Strider
am 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 Kommentare
Star Strider
am 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
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!