Average of a column without including a certain number
1 回表示 (過去 30 日間)
古いコメントを表示
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.
0 件のコメント
回答 (2 件)
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)
3 件のコメント
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
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 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!