Removing invalid results

1 回表示 (過去 30 日間)
Michael
Michael 2011 年 7 月 12 日
Hi, I'm having a problem removing part of my output that is invalid. Basically I have a matrix, and certain values within that matrix are implausible, and I want to replace those values with a value that won't affect calculations. So for example my matric might be [1 2 3 4 30], but 30 might be implausible, so I want to replace it with another value that doesn't affect calculations so that, for example, if i were to average the values I would get (1+2+3+4)/4 not divided by 5. Any ideas would be appreciated. Thank you

採用された回答

Sean de Wolski
Sean de Wolski 2011 年 7 月 12 日
Replace all of your implausible values (whatever criteria you use to determine that) with nan. Then apply your function to the non nan part of your data. There are some built-in nan ops already others would be easy to write.
A = [1 2 3 4 30]
A(A>10) = nan;
idx_care = ~isnan(A);
the_mean = sum(A(idx_care))/sum(idx_care);

その他の回答 (1 件)

the cyclist
the cyclist 2011 年 7 月 12 日
x = [1 2 3 4 30];
x(x>10) = NaN;
meanx = nanmean(x); % Will ignore NaN
  2 件のコメント
Sean de Wolski
Sean de Wolski 2011 年 7 月 12 日
stats toolbox required!
the cyclist
the cyclist 2011 年 7 月 13 日
D'oh!

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

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by