Removing low values from a matrix
古いコメントを表示
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 件のコメント
Jan
2021 年 2 月 6 日
You explain, that the shown code does not work as you want, but you forgot to mention, what you want instead. What do you want to happen?
Chris Dan
2021 年 2 月 6 日
Jan
2021 年 2 月 6 日
Of course the matrix changes its dimensions, when you delete elements. This belongs to the definition of matrices: All rows and columns need to have the same number of elements, respectivly. See an example:
A = [1, 2; 3, 4]
What do you expect, if you "remove" the 1st element? The output cannot be a 2x2 matrix, if there are 3 elements only.
Yo you can set the value of an element to 0 or to NaN, but there is no way to "remove" it. You can remove rows and/or columns, but not elements.
Chris Dan
2021 年 2 月 6 日
Jan
2021 年 2 月 7 日
X(any(X < 0.0108, 1), :) = [];
回答 (1 件)
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
2021 年 2 月 6 日
KALYAN ACHARJYA
2021 年 2 月 6 日
[r,~]=find(mat<0.0108);
mat(r,:)=[]
The code will delete the all rows, if it has any one or more element<0.0108. The resultant matrix will have reduced number of rows after deletion (if any matrix element have less than 0.0108).
Chris Dan
2021 年 2 月 6 日
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"?
カテゴリ
ヘルプ センター および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
