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 :

movefile inefficace.. Pourquoi?


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Physicien médical
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Physicien médical
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Points : 35
    Points
    35
    Par défaut movefile inefficace.. Pourquoi?
    Bonjour

    Alors j'ai un petit problème avec un déplacement de fichiers, il est vrai un peu complexe. Je m'explique:

    J'ai des fichiers YAML qui contienent plein d'infos. Parmi elles, le nom d'un accélérateur, et la dose par séance.

    J'ai extrait la dose par seance de chaque fichier YAML et l'ai stockée sous forme de petit fichier texte dans le dossier "dose_per_seance"

    Ce que je voudrais c'est donc créer une boucle qui:
    -Lit les fichiers YAML
    -identifie le champ "machine_code"
    -Distingue les 3 cas d'accelerateurs differents (parmi lesquel "PRIMUS")
    -Déplace les petits fichiers texte correspondant aux doses par seance de chaque accelerateur dans 3 dossiers distincts.

    Voici mon code pour le moment, dans le cas de l'exemple de protocole "uro_05":

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    ext = ('*.yaml');
    dos=protocole;
    chemin = fullfile(dos,ext);
    list = dir(chemin);
     
    switch lower (champ)
     
        case 'dose_per_seance'
     
            switch lower (protocole)
     
                case 'uro_05'
     
                    recup_donnees_doseperseance('uro_05');
                    dossier1 = 'URO_05\faisceau270\dose_per_seance';
                    dossier2 = 'URO_05\faisceau_90\dose_per_seance';
                    dossier3 = 'URO_05\faisceau_ant\dose_per_seance';
                    dossier4 = 'URO_05\faisceau_post\dose_per_seance';
     
    for j=1:numel(list)
     
                        YamlStruct1 = ReadYaml(sprintf('URO_05\\IG_PVSIGR_Prostate%d.yaml',j));
     
                        for i =1:numel(YamlStruct1.dosimetries.beams)
     
                            switch lower (YamlStruct1.dosimetries.beams(i).machine_code)
     
                                case 'PRIMUS'
     
                                    a=fullfile(dossier1,'patient%d.txt',i);
                                    movefile(fullfile(dossier1,'patient%d.txt',i),fullfile(dossier1,'PRIMUS_18MV','patient%d.txt',i));
                                    movefile(fullfile(dossier2,'patient%d.txt',i),fullfile(dossier2,'PRIMUS_18MV','patient%d.txt',i));
                                    movefile(fullfile(dossier3,'patient%d.txt',i),fullfile(dossier3,'PRIMUS_18MV','patient%d.txt',i));
                                    movefile(fullfile(dossier4,'patient%d.txt',i),fullfile(dossier4,'PRIMUS_18MV','patient%d.txt',i));
                            end
                        end 
                    end
     
            end
    Le probleme ben c'est qu'il ne me déplace rien du tout

    Pouvez-vous identifier pourquoi??

    Merci beaucoup d'avance!!

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Je pense que globalement le problème vient de cette syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fullfile(dossier1,'patient%d.txt',i)
    FULLFILE n'interprète pas les chaines de caractères et donc ici il ne remplace pas le %d par la valeur de i. Il faudrait plutôt faire (avec SPRINTF):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fullfile(dossier1,sprintf('patient%d.txt',i))


    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Nouveau membre du Club
    Profil pro
    Physicien médical
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Physicien médical
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    eyaaa c'est bon

    bon en fait y avait plein de petites erreurs dans les indices, les boucles etc...je m'étais précipité.

    J'ai rajouté les sprintf aussi, merci pour m'avoir rappelé cet oubli

    bonne journée, à la prochaine ^^

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

Discussions similaires

  1. [Templates] Quel système utilisez-vous ? Pourquoi ?
    Par narmataru dans le forum Bibliothèques et frameworks
    Réponses: 270
    Dernier message: 26/03/2011, 00h15
  2. Que choisir ? C# , VB.NET, C++, Delphi ? pourquoi ?
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 475
    Dernier message: 08/04/2010, 19h27
  3. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  4. Pourquoi ces directives #ifndef ... en haut des .h
    Par Patrick PETIT dans le forum C
    Réponses: 8
    Dernier message: 06/03/2003, 23h53

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