• Convertir une liste en matrice

    From vincent.belaiche@gmail.com@21:1/5 to All on Mon Nov 14 16:34:39 2022
    Bonjour,

    J'ai une liste dont tous les éléments sont ont le même type (par ex. des nombres), et je voudrais convertir cela en matrice. Si je fais cela :

    --------8<-----------8<-----------8<-----------8<-----------8<-------
    l = list(1,2,3);
    m = zeros(1, length(l));
    m(:) = l(:); --------8<-----------8<-----------8<-----------8<-----------8<-------

    Ça ne marche pas, car tous les éléments de m seront égaux à l(1), et m vaudra [1 1 1] au lieu de [1 2 3] !

    Finalement j'ai fait comme ça :

    --------8<-----------8<-----------8<-----------8<-----------8<-------
    l = list(1,2,3);

    function y = list_to_mat(x)
    l = length(x);
    y = zeros(l,1);
    for i = 1:l,
    y(i) = x(1)
    x(1) = null()
    i = i + 1;
    end
    endfunction

    m = list_to_mat(l) --------8<-----------8<-----------8<-----------8<-----------8<-------

    Y a-t-il une meilleure façon de le faire ?


    Je précise que la liste provient d'un fromJSON sur un fichier qui ne
    dépend pas de moi, donc je n'ai pas d'autre choix que de partir d'une
    liste.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From vincent.belaiche@gmail.com@21:1/5 to vincent.belaiche@gmail.com on Thu Nov 17 17:14:10 2022
    vincent.belaiche@gmail.com writes:

    Bonjour,

    J'ai une liste dont tous les éléments sont ont le même type (par ex. des nombres), et je voudrais convertir cela en matrice. Si je fais cela :

    --------8<-----------8<-----------8<-----------8<-----------8<-------
    l = list(1,2,3);
    m = zeros(1, length(l));
    m(:) = l(:); --------8<-----------8<-----------8<-----------8<-----------8<-------

    Ça ne marche pas, car tous les éléments de m seront égaux à l(1), et m vaudra [1 1 1] au lieu de [1 2 3] !

    Finalement j'ai fait comme ça :

    --------8<-----------8<-----------8<-----------8<-----------8<-------
    l = list(1,2,3);

    function y = list_to_mat(x)
    l = length(x);
    y = zeros(l,1);
    for i = 1:l,
    y(i) = x(1)
    x(1) = null()
    i = i + 1;
    end
    endfunction

    m = list_to_mat(l) --------8<-----------8<-----------8<-----------8<-----------8<-------

    Y a-t-il une meilleure façon de le faire ?


    Je précise que la liste provient d'un fromJSON sur un fichier qui ne
    dépend pas de moi, donc je n'ai pas d'autre choix que de partir d'une
    liste.



    Je me réponds à moi-même : il y a list2vec pour le faire …

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)