Modifier depuis matlab la valeur d'une variable d'un fichier texte.
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Modifier depuis matlab la valeur d'une variable d'un fichier texte.



  1. #1
    morgen68

    Modifier depuis matlab la valeur d'une variable d'un fichier texte.


    ------

    Bonjour!
    je n'arrive pas a modifier la valeur d'une variable d'un fichier.txt avec matlab

    ex: le fichier texte room.fds

    &HEAD CHID='room', TITLE='room file model' /
    &MESH IJK=40,40,24, XB= 0,4,0,4,0,2.4 /
    &TIME T_END=900. /
    &TAIL /

    Je cherche a changer la valeur IJK=40,40,24 a IJK=50,50,32.
    J'ai essaye avec textscan sans resultat.
    Si quelqu'un peut m'aider merci d'avance.

    -----

  2. #2
    Antoane
    Responsable technique

    Re : Modifier depuis matlab la valeur d'une variable d'un fichier texte.

    Bonjour,

    ca devrait le faire :
    Code:
    % new IJK value
    IJK_new = [50 50 32] ;
    
    % filenames : 
    filenmane = 'room_FS.fds' ; % old filename
    filenmane_new = 'room_FSnew.fds' ; % new filename
    
    % read file
    idn = fopen(filenmane) ;
    A = textscan(idn,'%s', 'delimiter', '\n');
    A=A{1,1}; 
    fclose(idn);
    
    % find the line in whichh IJK is defined
    jx = contains(A, 'IJK=') ; % for matlab 2017b and next
    interestingLine = A{jx} ; % line in which IJK is defined
    
    % find in whihch part of the line IJK is defined :
    pStart = strfind(interestingLine, 'IJK=') ; % the definition starts with "IJK="
    pStop = strfind(interestingLine, 'XB=') ;   % the definition ends just before "XB="
    
    % build the line redefining IJK
    newIJKdef = [num2str(IJK_new(1)), ',',num2str(IJK_new(2)), ',',num2str(IJK_new(3)), ' '] ;
    interestingLine = [interestingLine(1:pStart+3), newIJKdef,  interestingLine(pStop:end)] ;
    
    A{jx} = interestingLine ; % save the updated line with IJK definition in matrix A
    
    % save the updated file
    writetable(cell2table(A),[filenmane_new, '.txt']); % write in a txt-file (required by @writetable)
    movefile([filenmane_new, '.txt'],filenmane_new); % modify file extension
    C'est également probablement faisable avec fprintf et Cie. en lieu et place de l'infame writetable(...) ; movefile
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Discussions similaires

  1. convertir un fichier binaire en fichier texte en matlab
    Par invitec9386a24 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 28/11/2014, 07h01
  2. modifier un fichier une valeur d'un fichier .hex
    Par invite735b90b4 dans le forum Électronique
    Réponses: 0
    Dernier message: 19/02/2012, 16h18
  3. Modifier un fichier texte avec MATLAB
    Par invite70e57eb7 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 14/12/2009, 14h15
  4. (Matlab) Extraire des données depuis un fichier texte et les placer dans une matrice
    Par invite02e128cc dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 14/12/2009, 11h09
  5. DEBUTANT matlab lecture de fichier texte remplacement de valeur et matrice
    Par invite9524cf76 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 23/04/2008, 15h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...