MATLAB Answers

Removing low values from a matrix

20 views (last 30 days)
hamzah khan
hamzah khan on 6 Feb 2021
Commented: Jan on 7 Feb 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 Comments
Jan
Jan on 7 Feb 2021
Exactly as @KALYAN ACHARJYA has posted already, or slightly faster:
X(any(X < 0.0108, 1), :) = [];

Sign in to comment.

Answers (1)

KALYAN ACHARJYA
KALYAN ACHARJYA on 6 Feb 2021
Edited: KALYAN ACHARJYA on 6 Feb 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 Comments
KALYAN ACHARJYA
KALYAN ACHARJYA on 6 Feb 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"?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!