Reduce discretisation in matrix

13 visualizaciones (últimos 30 días)
Jean
Jean el 3 de En. de 2015
Comentada: Star Strider el 4 de En. de 2015
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 comentarios
Jean
Jean el 3 de En. de 2015
Editada: Jean el 3 de En. de 2015
Thanks per isakson; I tried to use pcolor but I don't understand how to use it in y case. Could you give me an example please?

Iniciar sesión para comentar.

Respuestas (1)

Star Strider
Star Strider el 3 de En. de 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 comentarios
Jean
Jean el 3 de En. de 2015
Editada: Jean el 3 de En. de 2015
This is good but not exactly what I am looking for. In this case I just suppress a row every n rows. But I am not doing any kind of average isn't it? I am looking for something that will read the values on 5 adjacent rows and calculate the average for those 5 values and make a new row.
Star Strider
Star Strider el 4 de En. de 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

Iniciar sesión para comentar.

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by