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 :

Ouvrir fichier dans boucle


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut Ouvrir fichier dans boucle
    Bonjour

    J'ouvre des .mat dans une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ii = 
    name = ['stackAll_',num2str(ii),'_',num2str(Nplot)]
    end
    ce qui donne par ex pour la 1ere boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    name =
     
    stackAll_1_3
    mais si je veux retirer la 1ere valeur par exemple, un petit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    name(1,1)
     
    ans =
     
    s
    le "s" du nom de fichier... comment lui dire que veux les valeurs de stackAll ?

    y'a t il moyen de faire un truc de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['stackAll_',num2str(ii),'_',num2str(Nplot)](:,1)
    Merci d'avance

  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 317
    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 317
    Par défaut
    Peut-tu nous montrer ce que renvoie ceci ?


  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> who -file stackAll_1_3
     
    Your variables are:
     
    stackAll_1_3
    Enfin pour simplifier ma question :

    En gros je créer une chaine de caractère 'stackall_1_3' et j'aimerais ouvrir la matrice qui porte exactement le même nom stackall_1_3.

  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 317
    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 317
    Par défaut
    Même si je ne cautionne pas ce type de programmation, par soucis de propreté, j'utiliserais au moins LOAD avec la structure en sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    test_1 = [0 1 2];
    test_2 = [6 7 8];
    test_3 = [8 4 3];
     
    for n = 1:3
        name = sprintf('test_%d',n);
        save(name,name);
    end
     
    for n = 1:3
        name = sprintf('test_%d',n);
        S = load(name);
        v = getfield(S,name,{1})
    end
    Sinon comme toujours => : Comment créer des variables nommées A1, A2, A3, ...,AN ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    Merci ! mais mes "test" sont des matrices et je n'arrive pas à isoler une colonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    test_1 = [0 1 2 ; 4 3 9];
    test_2 = [63 72 84 ; 22 75 83];
    test_3 = [112 344 433; 348 236 893];
     
    for n = 1:3
        name = sprintf('test_%d',n);
        save(name,name);
    end
     
    for n = 1:3
        name = sprintf('test_%d',n);
        S = load(name);
        v = getfield(S,name,{1,:})
    end
    me retourne :
    ??? v = getfield(S,name,{1,:})
    |
    Error: Unexpected MATLAB operator.
    Merci pour vos remarques...

    enfin ceci n'est pas très important, je peux les récupérer par la suite mais si y'avait moyen de faire ça en une seule commande.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 58
    Par défaut
    J'ai essayé et je pense que quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v = getfield(S,name,{[1,2]})
    te permet de récupérer la première colonne dans le cas des matrices que tu as données en exemple. [3,4 la deuxième etc...]

    En gros pour une matrice mxn

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v = getfield(S,name,{(a-1)*m+[1:m]})
    permet de récupérer la aème colonne.

Discussions similaires

  1. ouvrir fichier dans une BD et le modifier
    Par bob11 dans le forum VB.NET
    Réponses: 1
    Dernier message: 12/02/2011, 03h45
  2. Ouvrir fichier excel dans une boucle
    Par Nako_lito dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/08/2010, 13h40
  3. Ouvrir fichier dans nouvelle page
    Par crapouye dans le forum ASP.NET
    Réponses: 7
    Dernier message: 13/06/2008, 14h14
  4. Ouvrir fichier dans le code
    Par maxime115 dans le forum Général VBA
    Réponses: 2
    Dernier message: 22/08/2007, 17h07
  5. [VB.NET] Ouvrir fichier dans appli par double-clic dessus
    Par vynce dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/03/2005, 16h43

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