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 :

Supprimer une variable dans un fichier .mat


Sujet :

MATLAB

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Points : 137
    Points
    137
    Par défaut Supprimer une variable dans un fichier .mat
    Bonjour,
    J'ai créé un fichier en .mat qui contient plusieurs variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    saveFileCheck = [saveFile,'.mat'];
        if (exist(saveFileCheck)==2)==0;
            save(saveFile,'labels');
            save(saveFile,'-append',char(Time_Labels(fileNumber,:)));
            save(saveFile,'-append',char(Header_Labels(fileNumber,:)));
        elseif (exist(saveFileCheck)==2)==1;
            save(saveFile,'-append','labels');
            save(saveFile,'-append',char(Time_Labels(fileNumber,:)));
           save(saveFile,'-append',char(Header_Labels(fileNumber,:)));
        end
    Je voudrais automatiser, pour pouvoir supprimer certaine de ces variables.

    Comment faire? je cherche une fonction matlabe qui pourrait me le faire, ou dois je écraser tous mon fichier.
    Pour modifier une variable, j'y arrive sans problème par écrasement.
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    save(fileName,'-append','labels');
    Merci

    Anthony

  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 : 53 165
    Points
    53 165
    Par défaut
    On va déjà simplifier la structure conditionnelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    saveFileCheck = [saveFile,'.mat'];
        if exist(saveFileCheck)==2
            save(saveFile,'-append','labels');
            save(saveFile,'-append',char(Time_Labels(fileNumber,:)));
            save(saveFile,'-append',char(Header_Labels(fileNumber,:)));
        else
            save(saveFile,'labels');
            save(saveFile,'-append',char(Time_Labels(fileNumber,:)));
            save(saveFile,'-append',char(Header_Labels(fileNumber,:)));
        end
    Ensuite, la méthode brutale consiste à utiliser LOAD en ne chargeant que les données à conserver et à écraser le fichier mat avec SAVE et ces données
    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
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Je ne vois pas bien d'autre moyen que de recharger le fichier, supprimer les variables et le re-sauver.
    Le plus simple me paraissant de passer par le formalisme structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    S=load('monFichier.mat');
    %suppression de la variable 'toto'.
    nom_supprime = 'toto';
    S=rmfield(S,nom_supprime);
    save('monFichier.mat';'-struct','S');
    Après il existe peut-être des choses sur le FEX Matlab mais je n'ai pas trouvé.
    Règles du Forum

    Adepte de la maïeutique

  4. #4
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    il n'existe pas de fonctionnalité pouvant supprimer certaines variables d'un MATLAB, tu peux cependant charger seulement celles qui t'interessent en faisant:
    1. voir variables contenues dans myFile.mat:

    2. charger seulement celles qui t'interessent (exemple, A, B et C):

    3. Effacer l'ancien MAT-file

    4. Sauvegarder les variables chargéees dans un nouveau MAT-file :

    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Points : 137
    Points
    137
    Par défaut :resolu:
    Merci de l'aide.
    Je vais partir sur ces idées

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

Discussions similaires

  1. Supprimer une ligne dans un fichier
    Par tsing dans le forum Linux
    Réponses: 4
    Dernier message: 06/02/2006, 14h45
  2. Supprime une occurence dans un fichier
    Par dev7 dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 03/02/2006, 14h21
  3. modifier une variable dans un fichier
    Par Guismay dans le forum Langage
    Réponses: 7
    Dernier message: 11/09/2005, 19h46
  4. Réponses: 13
    Dernier message: 14/06/2003, 22h15
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

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