IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

matrice vers vecteur dans un fichier [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 8
    Points
    8
    Par défaut matrice vers vecteur dans un fichier
    Bonjour,

    j'ai un code qui me génère des matrice de 980*980*701 lorsque j'utilise les paramètres dont j'ai besoin pour mes calculs.
    Ce code à pour but la génération d'un fichier bien particulier dans lequel le contenu de ma matrice I_moy doit se retrouver en colonne, le problème c'est que quand je converti cette matrice en un vecteur la taille de ce vecteur fait que je me retrouve en OUT OF MEMORY

    ma question est donc : avez vous une idée de comment je pourrais écrire ma matrice sous la forme d'une colonne dans mon fichier autrement que par un fprintf dans ma boucle solution qui prend un temps fou et autrement que par l'enregistrement des valeur dans un vecteur qui lorsque j'ai de grosses matrice 3D comme ça fait que je suis out of memory ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    % break;
    'ok 2'
    I_moy=zeros(Nx_max,Ny_max,Nz_max);
     
     
    'ok 3'
    T=0;
    for Nz=1:Nz_max
        for Ny=1:Ny_max
            for Nx=1:Nx_max
                if Cell(Nx,Ny,Nz)~=0
                I_moy(Nx,Ny,Nz)=I_cell(Nx,Ny,Nz)/Cell(Nx,Ny,Nz);
                end
    %             fprintf(file_retropro_3D,'%i\n',I_moy(Nx,Ny,Nz));
                T=T+1;
                Imoyrec(T)=I_moy(Nx,Ny,Nz);
     
            end
        end
    end
     
    Imoyrec=Imoyrec';
    fprintf(file_retropro_3D,'%d\n',Imoyrec.');
    fclose(file_retropro_3D);
    'ok 4'
    sound(yi,Fe);
    Merci d'avance pour vos réponses.
    NB : je ne mets pas mon code entier sur le net mais seulement la partie ou il y a la "transformation" de la matrice en vecteur par soucis de confidentialité

    Loïc

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Voir la FAQ : Comment transformer une matrice MxN en vecteur Px1 ?

    Soit approximativement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    file_retropro_3D = fopen(...);
    fprintf(file_retropro_3D, '%d\n', Imoy(:));
    fclose(file_retropro_3D);
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    je souhaite une réorganisation ligne par ligne de ma matrice et non colonne par colonne mais quand j'utilise l'opérateur .' pour transposer la matrice matlab me dis que cet opérateur n'est pas défini pour les matrice ND comment puis-je m'en sortir svp =)

    merci d'avance

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    file_retropro_3D = fopen(...);
     
    for n = 1:size(Imoy,3)
        tmp = Imoy(:,:,n).';    
        fprintf(file_retropro_3D, '%d\n', tmp(:));
    end
     
    fclose(file_retropro_3D);
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Je vais tester ça et je reviens vers vous, merci

    [Edit] finalement les résultats que j'obtiens sans transposition de la matrice sont semble-t-il bons, Merci en tout cas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Comparer des vecteurs dans plusieurs fichiers
    Par leo_nic dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/11/2012, 17h07
  2. sauvegarder un vecteur dans un fichiers texte
    Par kheira dans le forum MATLAB
    Réponses: 5
    Dernier message: 09/03/2010, 16h46
  3. Matrice de complexes dans un fichier .txt
    Par TiMeWaLk dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/06/2009, 09h08
  4. données de vecteur dans un fichier txt
    Par hebh dans le forum Général Java
    Réponses: 3
    Dernier message: 03/03/2008, 16h19
  5. Réponses: 3
    Dernier message: 29/11/2007, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo