Average of a column without including a certain number

1 回表示 (過去 30 日間)
Ferhat Sever
Ferhat Sever 2020 年 7 月 4 日
コメント済み: Image Analyst 2020 年 7 月 5 日
Is there a function for this or do I have to work with loops?
I have to calculate the average of a column without counting a specific number.
x = mean (A, 1)
Just ignoring a certain number. As with the function mean (nonzeros (x)), where you ignore the 0s.

回答 (2 件)

the cyclist
the cyclist 2020 年 7 月 5 日
編集済み: the cyclist 2020 年 7 月 5 日
There is no specific function for this, but it is easy to do without a loop:
A = [6; 3; 6; 4];
N = 6;
mean_A_without_N = mean(A(A~=N),1)
This uses logical indexing to identify the elements to be averaged.
  3 件のコメント
Ferhat Sever
Ferhat Sever 2020 年 7 月 5 日
thank you it worked :)
Image Analyst
Image Analyst 2020 年 7 月 5 日
It creates a temporary column vector when it does this A(A~=N). But the original A is never changed at all. The 1 in mean in not needed since it's a vector (regardless of what direction):
A = [6; 3; 6; 4];
N = 6;
mean_A_without_N = mean(A(A~=N))
It also (reasonably) assumes that you already have the column vector as A. If you don't, and you need to extract it from a 2-D matrix, you can do something like this to extract the 3rd column:
A = M(:, 3); % Extract third column (for example) from matrix M into a column vector.

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


madhan ravi
madhan ravi 2020 年 7 月 5 日
certain_number = 5; % example
A(A == certain_number) = NaN; % use A(ismember(A, certain_numbers)) = nan if certain_numbers is more than one
M = mean(A,'omitnan')
% or
M = nanmean(A)
  3 件のコメント
madhan ravi
madhan ravi 2020 年 7 月 5 日
Thanks Steven.
Ferhat Sever
Ferhat Sever 2020 年 7 月 5 日
thank you a lot it worked :)

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

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by