[Scilab-users] mean of elements corresponding element is "true"

Samuel Gougeon sgougeon at free.fr
Fri Mar 2 16:54:10 CET 2018


Le 02/03/2018 à 16:40, fujimoto2005 a écrit :
> In the attached code,"boolean_M" is a random Boolean matrix.
> I want to get the average of each column of A whose corresponding element of
> boolean_M has "true" as row vector x_V, but it does not work.
> Where am I wrong?
> n=10;
> boolean_M=rand(n,n)>0.5;
> disp(boolean_M)
> A=rand(n,n);
> disp(A);
> x_V=mean(A(boolean_M),'r');

Instead, you may use

n  =  5;
boolean_M  =  rand(n,n)>0.5
A  =  grand(n,n,"uin",0,9)
A(boolean_M)  =  %nan
nanmean(A,"r")

--> n = 5;
--> boolean_M = rand(n,n)>0.5
  boolean_M  =
   T F F F T
   T T T T T
   T T F T T
   F T F T F
   F F T T F

--> A = grand(n,n,"uin",0,9)
  A  =
    6.   2.   5.   4.   6.
    6.   9.   3.   6.   5.
    3.   9.   3.   5.   4.
    0.   8.   7.   0.   7.
    1.   6.   8.   7.   2.

--> A(boolean_M) = %nan
  A  =
    Nan   2.    5.    4.    Nan
    Nan   Nan   Nan   Nan   Nan
    Nan   Nan   3.    Nan   Nan
    0.    Nan   7.    Nan   7.
    1.    6.    Nan   Nan   2.

--> nanmean(A,"r")
  ans  =
    0.5   4.   5.   4.   4.5

Samuel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20180302/341302b7/attachment.htm>


More information about the users mailing list