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 :

structure à differents niveaux fonction variable '.'


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Par défaut structure à differents niveaux fonction variable '.'
    Bonjour,

    je souhaite faire une fonction qui permet de changer la valeur d'une structure d'un .mat.
    en entrée, je mets le nom du fichier, le nom de la variable et la nouvelle valeur de la variable.
    et en sortie je sauvegarde le .mat avec un nouveau nom :

    Ca fonctionne avec une variable "simple" :
    niveau1
    c'est a dire lorque la structure n'a qu'un niveau.

    Lorsque je souhaite aller dans des niveau plus bas, j'ai un probleme avec le point entre les différentes structure :
    niveau1.niveau2.niveau3

    Coment puis-je faire pour que ma variable passe dans
    S.handles.(nameVar) dans ce cas plus compliqué ?


    Merci pour votre aide.
    mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function [] = toto(namefile,nameVar,newnameVar)
    namefile
    nameVar
    newnameVar
    local=pwd;
     
    S=load(strcat(local,'/',namefile,'.mat'));
    S.handles.(nameVar)=newnameVar;
    NOM=strcat(local,'/',namefile,'_.mat');
    handles=S.handles;
    save (NOM,'handles');


    ImaegingAll

  2. #2
    Expert confirmé
    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
    Par défaut
    J'ai du mal à comprendre.
    Peux-tu donner un exemple avec ce que tu as en entrée et ce que tu veux en sortie ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Par défaut
    Merci Caro pour ton intervention rapide,

    je lance la fonction comme ceci :
    Cas simple
    toto('Batch_data','number','data/master/')
    et en sortie je veux le fichier Batch_data'.mat sauvegardé sous le nom Batch_data_.mat avec dans ce fichier la valeur
    number
    qui passe à
    data/master/



    Cas plus compliqué :

    toto('Batch_data','Current.DefaultImageDirectory','data/master/')
    et en sortie je veux le fichier Batch_data'.mat sauvegardé sous le nom Batch_data_.mat avec dans ce fichier la valeur
    Current.DefaultImageDirectory
    qui passe à
    data/master/


    Est ce que c'est plus claire ?

    ImagingAll

  4. #4
    Expert confirmé
    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
    Par défaut
    Oui je crois.

    Et ça te dis quoi quand tu essayes de faire :(désolée pas MATLAB)

    Sinon juste un truc il existe une super fonction pour construire les chemins complets de fichier FULLFILE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fichier1 = fullfile(local,[namefile,'.mat'])
    C'est plus joli (à mon goût que les strcat) et surtout multi-plateformes

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Par défaut
    Merci caro,

    je n'ai pas d'erreur mais

    ça crée la variable dans la structure : S.handles.('nameVar') qui est égale a data/master.

    fullfile ca fonctionne avec des structure ?

    ImagingAll

  6. #6
    Expert confirmé
    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
    Par défaut
    Citation Envoyé par ImagingAllthe Voir le message
    Merci caro,

    je n'ai pas d'erreur mais

    ça crée la variable dans la structure : S.handles.('nameVar') qui est égale a data/master.
    Comprends pas je regarderais ce soir

    Citation Envoyé par ImagingAllthe Voir le message
    fullfile ca fonctionne avec des structure ?
    euh c'est pour les noms de fichiers aucun rapport avec les structures.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Par défaut
    Citation:
    Envoyé par ImagingAllthe Voir le message
    fullfile ca fonctionne avec des structure ?
    euh c'est pour les noms de fichiers aucun rapport avec les structures.
    Ah oui .... merci ca sera plus simple avec fullfille

  8. #8
    Expert confirmé
    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
    Par défaut
    Une idée (un peu tirée par les cheveux peut-être) en mettant un tableau de cellules pour ton 2ème paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    chps={'champ1','champ2','champ3'};%la liste des champs à obtenir
    v=2;%la valeur à associer
    tp{1}=v;
    total=length(chps);
    for k=total:-1:1 %boucle à l'envers sur les champs
        tp{total-k+2}.(chps{k})=tp{total-k+1};
    end
    S.handles=tp{end}

Discussions similaires

  1. passé une structure a une fonction
    Par M.a.n.u. dans le forum C
    Réponses: 24
    Dernier message: 30/04/2006, 15h47
  2. Passer une structure dans une fonction ...
    Par pilouface dans le forum C
    Réponses: 4
    Dernier message: 03/04/2006, 01h00
  3. Réponses: 9
    Dernier message: 31/03/2006, 16h31
  4. Structure, pointeur et fonction...
    Par Linaa dans le forum C
    Réponses: 15
    Dernier message: 04/12/2005, 13h12
  5. fonction "variable doit etre declare"
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/05/2004, 20h55

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