Mean of array columns with condition

조회 수: 3 (최근 30일)
Mariella Dreißig
Mariella Dreißig 2019년 11월 18일
답변: Philippe Lebel 2019년 11월 18일
I have an array of which I need the mean of each column (X). Additionally, I have a logical array of which rows meet a condition and should be included in the mean (Y).
Naturally, the mean function in MATLAB calculates each column mean, but when I insert the logical vector for the row selection, the mean is calculated for the whole array. How do I fix this for computing the mean of each column in X for the valid indices of Y?
When entering
means_active = mean(X(Y), :);
I get the error 'Reference to a cleared variable mean.', though I don't want to use any variable 'mean' but the built-in function 'mean'.
  댓글 수: 3
Mariella Dreißig
Mariella Dreißig 2019년 11월 18일
편집: Mariella Dreißig 2019년 11월 18일
I already copied the line of code I'm talking about, I don't know how to illustrate more.
means_active = mean(X(Y(:,1) < cutoff), :);
Mariella Dreißig
Mariella Dreißig 2019년 11월 18일
I found a workaround though, thanks :)

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

답변 (1개)

Philippe Lebel
Philippe Lebel 2019년 11월 18일
I tested my solution with these matrices:
a = rand(6,3)
B=[1;0;1;1;0;1];
means_active = mean(a(logical(B)),2);
seems to work for me. (i was forced to cast B as logical because i manually declared the values inside the list as integers)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by