Removing low values from a matrix

51 次查看(过去 30 天)
Chris Dan
Chris Dan 2021-2-6
评论: Jan 2021-2-7
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 个评论
Chris Dan
Chris Dan 2021-2-6
Okay,
and if I want to remove the rows that have neglible values, how to do that
Jan
Jan 2021-2-7
Exactly as @KALYAN ACHARJYA has posted already, or slightly faster:
X(any(X < 0.0108, 1), :) = [];

请先登录,再进行评论。

回答(1 个)

KALYAN ACHARJYA
KALYAN ACHARJYA 2021-2-6
编辑:KALYAN ACHARJYA 2021-2-6
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 个评论
Chris Dan
Chris Dan 2021-2-6
it is not working, I am getting a 0 x 10 matrix.
I am attaching the file
KALYAN ACHARJYA
KALYAN ACHARJYA 2021-2-6
编辑:KALYAN ACHARJYA 2021-2-7
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"?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Specialized Messages 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by