Removing low values from a matrix

43 visualizaciones (últimos 30 días)
Chris Dan
Chris Dan el 6 de Feb. de 2021
Comentada: Jan el 7 de Feb. de 2021
Hi
I have a small problem, I have a 134x10 matrix, which has some noise elemetns. I would like to remove them.
As in the picture below, all elements less than 0.0108 are noise. I am attaching the file
I tried this code
ModeShapes(ModeShapes < 0.01) = [];
but this doesnot works as I want.
Does anybody knows how it can be done
  5 comentarios
Chris Dan
Chris Dan el 6 de Feb. de 2021
Okay,
and if I want to remove the rows that have neglible values, how to do that
Jan
Jan el 7 de Feb. de 2021
Exactly as @KALYAN ACHARJYA has posted already, or slightly faster:
X(any(X < 0.0108, 1), :) = [];

Iniciar sesión para comentar.

Respuestas (1)

KALYAN ACHARJYA
KALYAN ACHARJYA el 6 de Feb. de 2021
Editada: KALYAN ACHARJYA el 6 de Feb. de 2021
Remove menas, you have to replace by other certain values, so that it can be easily distinguishable.
mat(mat<0.0108)=0
or
mat(mat<0.0108)=NaN
More: You cann't completely delete the certain matrix elements (replace option), but you can either delete the certain rows or column easily complete.
  4 comentarios
Chris Dan
Chris Dan el 6 de Feb. de 2021
it is not working, I am getting a 0 x 10 matrix.
I am attaching the file
KALYAN ACHARJYA
KALYAN ACHARJYA el 6 de Feb. de 2021
Editada: KALYAN ACHARJYA el 7 de Feb. de 2021
Yes, because there are atleast one value (which is less than 0.0108) in each row of ModeShapes matrix, hence it shows the all rows deletion.
Rethink on "yes, I want to delete those rows which are less than 0.01"?

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by