non zero elements above 70 and below -70 zero

1 回表示 (過去 30 日間)
Jeroen
Jeroen 2012 年 2 月 17 日
編集済み: Jan 2013 年 10 月 15 日
hello people,
In a matrix I want that all non zero elements above 70 and below -70 is zero.
How do I do that ?
Thank you!

回答 (4 件)

Honglei Chen
Honglei Chen 2012 年 2 月 17 日
Use logical index
x(x>70 | x<-70)=0
  2 件のコメント
Jeroen
Jeroen 2012 年 2 月 17 日
and what if I want to replace only those elements in the first two rows?
Honglei Chen
Honglei Chen 2012 年 2 月 17 日
See carmen's answer below

サインインしてコメントする。


the cyclist
the cyclist 2012 年 2 月 17 日
I am not 100% sure what you mean, but here is some code (with comments on my understanding) that you should be able to modify to do what you want
% Some test data:
A = 200*rand(100) - 100;
% Index to values you want to zero out
idx = (A>70) | (A<-70); % Index to values that are bigger than 70 or smaller than -70
% Zero those out
A(idx) = 0;
  1 件のコメント
Jeroen
Jeroen 2012 年 2 月 17 日
Thank you!
Well it is a matrix of ~40000 by 6. But what if I want to replace only those elements in the first two rows?

サインインしてコメントする。


carmen
carmen 2012 年 2 月 17 日
then you modify Honglei Chen 's approach according to your wish:
x(1:2,x(1:2,:)>70 | x(1:2,:)<-70)=0
that should be it.

Sean de Wolski
Sean de Wolski 2012 年 2 月 17 日
A(abs(A)>70) = 0;

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by