[Users-fr] applying function to a matrix

classic Classic list List threaded Threaded
3 messages Options
Vincent Douce Mathoscope Vincent Douce Mathoscope
Reply | Threaded
Open this post in threaded view
|

[Users-fr] applying function to a matrix

hi
i am not very ease with scilab but i have to help some stundents of mine on that topic
i thought that applying any function on a matrix would apply affect every item of that matrix
example sqrt(A) would that the sqrt of each aij of A
in this logic i wanted to simulate a binomial law by creating this bernoulli function :

function xp=f(x, p)
    if x<p 
        then xp=1
        else xp=0 
    end
endfunction

and apply it to a grand of ramdom x in [0,1] like that :

function bn=binomiale(n, p)
    a=grand(1,n,"unf",0,1)
    ap=f(a,p)
    disp(ap)
    bn=sum(ap)
endfunction

but it doesn't work

it seems like scilab would try to apply f to a as an object itself

could aynone help me understanding ?

thanks
        ––––––––––––––––––––––––––
                  Vincent Douce
               :=: Mathoscope :=:
             http://mathoscope.xyz
                 06°13°11°07°26
          Bagnères de Bigorre 65200





_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
Pierre Payen Pierre Payen
Reply | Threaded
Open this post in threaded view
|

Re: applying function to a matrix

Tout dépend de comment vous définissez votre fonction : en effet srqt est une
fonction qui s'applique à l'ensemble des éléments, mais parce qu'elle a été
codé comme ça.

Pour répondre à votre problème, il faut alors penser x comme un vecteur :

function xp=f(mat,p)
  xp = zeros(mat) // on initialise xp comme un vecteur de même rang que mat
  xp(mat < p) = 1 // xp est définit comme suit : si mat(i) < p alors xp(i) =
1
endfunction

Celà devrait résoudre votre problème.



--
Sent from: http://mailinglists.scilab.org/Liste-utilisateur-en-francais-f3344097.html
_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
Vincent Douce Mathoscope Vincent Douce Mathoscope
Reply | Threaded
Open this post in threaded view
|

Re: applying function to a matrix

merci beaucoup je vais m'attaquer à ça
Scilab a effectivement une logique très intéressante mais qui demande à être apprivoisée
Vincent

> Le 2 févr. 2018 à 12:07, Pierre Payen <[hidden email]> a écrit :
>
> Tout dépend de comment vous définissez votre fonction : en effet srqt est une
> fonction qui s'applique à l'ensemble des éléments, mais parce qu'elle a été
> codé comme ça.
>
> Pour répondre à votre problème, il faut alors penser x comme un vecteur :
>
> function xp=f(mat,p)
>  xp = zeros(mat) // on initialise xp comme un vecteur de même rang que mat
>  xp(mat < p) = 1 // xp est définit comme suit : si mat(i) < p alors xp(i) =
> 1
> endfunction
>
> Celà devrait résoudre votre problème.
>
>
>
> --
> Sent from: http://mailinglists.scilab.org/Liste-utilisateur-en-francais-f3344097.html
> _______________________________________________
> users-fr mailing list
> [hidden email]
> http://lists.scilab.org/mailman/listinfo/users-fr

        ––––––––––––––––––––––––––
                  Vincent Douce
               :=: Mathoscope :=:
             http://mathoscope.xyz
                 06°13°11°07°26
          Bagnères de Bigorre 65200





_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr