Bonjour à tous,
Débutant sous MatLab, je dois améliorer un programme existant en factorisant le contenu de trois 3 fichiers mat: ces 3 fichiers sont les suivants:
Et j'aimerais avoir au final un seul fichier:F1_N001.mat:
champ1: 'titre'
champ2: 'version'
champ3: 'date'
champ4_1: cellule_1 NxM
F1_N002.mat:
champ1: 'titre'
champ2: 'version'
champ3: 'date'
champ4_2: cellule_2 NxM
F1_N003.mat:
champ1: 'titre'
champ2: 'version'
champ3: 'date'
champ4_3: cellule_3 NxM
Ce fichier F1.mat contiendrait la concaténation des champs 'champ4_x' avec un nouveau nom (champ4).F1.mat:
champ1: titre
champ2: version
champ3: date
champ4: cellule_1 NxM
cellule_2 NxM
cellule_3 NxM
Voilà mon code MatLab:
J'obtiens le fichier F1.mat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 % Chargement du fichier MAT pour récupérer l'entête %50 fichierMATcharge = load('F1_N001.mat'); %51 % Suppression du champ4 %52 EnteteMAT = rmfield(fichierMATcharge, 'champ4_1'); %53 % Creation du fichier MAT final avec l'entete %54 save('F1.mat', '-struct', EnteteMAT, 'champ1', 'champ2', 'champ3'); %5 % Récupération des donnees champ4_x et renommage du premier champ %56 champ4 = load('F1_N001.mat', 'champ4_1' ); %57 donneeChamp4_2 = load('F1_N002.mat', 'champ4_2' ); %58 donneeChamp4_3 = load('F1_N003.mat', 'champ4_3' ); %59 % Ajout des données à la fin du fichier %60 save('F1.mat', 'champ4', 'donneeChamp4_2', 'donneeChamp4_3', '-append'); %61
A la ligne 61, si je supprime les ' autour des 'donneeChamp4_x', j'ai une erreur de string; en fait, je n'arrive pas à renommer un champ dans mon fichier .mat et à concaténer des données à la fin. D'après le web, j'ai vu que l'on pouvait utiliser '-struct' et '-append' en même temps dans le save mais toute mes tentatives se sont conclues par des échecs.champ1: 'titre'
champ2: 'version'
champ3: 'date'
champ4: cellule_1 NxM
donneeChamp4_2: cellule_2 NxM
donneeChamp4_3: cellule_3 NxM
Est-ce que quelqu'un à une idée, une piste ?
Merci d'avance.
aVr
PS: je n'ai pas utilisé la fonction 'eval' de Matlab car je ne la maitrise pas bien.
Partager