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 :

enregistrer des données de différentes variables dans une boucle i


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Par défaut enregistrer des données de différentes variables dans une boucle i
    bonjour à tous
    j'ai un fichier qui comporte 10 variables (0 à 9) et je veux les extraire dans une même boucle, j'ai donc changé les nom en ajoutant un suffix i et j'ai fais comme ça
    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
    for i=0:9;
        suffix=num2str(i);
        varname_2005=sprintf('varname_2005_%s',suffix);
        xtype_2005=sprintf('xtype_2005_%s',suffix);
        varDimID_2005=sprintf('varDimID_2005_%s',suffix);
        varAtts_2005=sprintf('varAtts_2005_%s',suffix);
        varid_2005=sprintf('varid_2005_%s',suffix);
        data_2005=sprintf('data_2005_%s',suffix);
        assignin('base',varname_2005,i);
     
     
        % Get the name of the first variable.
        [varname_2005, xtype_2005, varDimID_2005, varAtts_2005] = netcdf.inqVar(ncid_2005,i);
     
        % Get variable ID of the first variable, given its name.
        varid_2005 = netcdf.inqVarID(ncid_2005,varname_2005);
     
        % Get the value of the first variable, given its ID.
        data_2005 = netcdf.getVar(ncid_2005,varid_2005);
     
    end
    mais à la fin du programme je ne trouve que la dernière variable 9 enregistrée? quelqu'un sait pourquoi?
    merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Par défaut
    où est-ce que tu souhaites récupérer les noms de tes 10 variables?

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Par défaut
    ce que je souhaite c'est affecter le tableau de donnée de la variable i au nom 'data_2005_i' et que j'aurais aussi 'varname_2005_i'

  4. #4
    Membre éprouvé
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Par défaut
    Si j'ai bien saisi ce que tu cherches, le problème c'est que tu écrases à chaque fois data_2005.

    Avec cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data_2005=sprintf('data_2005_%s',suffix);
    tu affectes à data_2005 une chaine de caractères (par exemple, data_2005_3 ).

    Et quand ensuite tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data_2005 = netcdf.getVar(ncid_2005,varid_2005);
    ce n'est pas à data_2005_3 que tu affectes la valeur recherchée, mais à data_2005. Du coup tu écrases la chaine de caractère. La boucle continuant, tu ne retrouves plus tes valeurs.

    Normalement, je pense que tu devrais pouvoir simplement faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    assignin('base',data_2005,netcdf.getVar(ncid_2005,varid_2005));

    Est ce que ca répond à ta question? (il est possible que je sois passé complètement à côté de ton problème

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Par défaut
    super!!!!
    merci beaucoup c'est bien ça ce que je cherche

  6. #6
    Membre éprouvé
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Par défaut
    Parfait! Ravi d'avoir pu t'être utile

Discussions similaires

  1. Enregistrer des fichiers word, pdf, etc. dans une base de données
    Par mallsoul dans le forum Décisions SGBD
    Réponses: 23
    Dernier message: 10/09/2014, 15h48
  2. Réponses: 6
    Dernier message: 22/07/2013, 16h24
  3. Réponses: 1
    Dernier message: 04/10/2011, 13h05
  4. Placer des données de SQL serveur dans une variable
    Par Dohmaker dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/02/2008, 22h18
  5. [VB]stocker des données de pages web dans une base
    Par tofito dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/02/2006, 11h02

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