How to ignore certain columns in a matrix when calculating a mean across all columns in a matrix?

조회 수: 4 (최근 30일)
Hi all,
I have a 100x16 double matrix (attached) which when plotted over one figure looks like this.
Now, I want to calculate the mean across all columns in the matrix so that the output is a 100x 1 double. I can do this by following
load 'data'
figure
plot(S_or_z(:,1:8),'r')
hold on
plot(S_or_z(:,9:end),'b')
% get mean
S_or_z_meancycle = mean(S_or_z, 2);
However, when calcuating the mean, I would like ignore the columns indicated in red.
The rule that I would like to apply is that the columns which range (max-min) exceeds 200 should be ignored when calcuating the mean accross all columns.
Can you help please?

채택된 답변

Davide Masiello
Davide Masiello 2022년 3월 16일
편집: Davide Masiello 2022년 3월 16일
See if this works
new_S_or_z = S_or_z(:,(max(S_or_z,[],1)-min(S_or_z,[],1)) < 200);
Unrecognized function or variable 'S_or_z'.
plot(new_S_or_z)
mean(new_S_or_z,[],2)
  댓글 수: 2
Tomaszzz
Tomaszzz 2022년 3월 16일
Thanks Davide,
Instead of :
mean(new_S_or_z,[],2)
Should it be?:
mean(new_S_or_z,2)
Otherwise I get:
Dimension argument must be a positive integer scalar, a vector of unique positive integers, or 'all'.
Davide Masiello
Davide Masiello 2022년 3월 16일
Yes, you're right! I got the syntax for "min" and "max" mixed up with the one for "mean", sorry about that.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by