2012-02-01 5 views
2

Je veux écrire des données dans un fichier texte dans Matlab mais j'ai des problèmes. Je veux que le fichier à ressembler à ceÉcrire dans un fichier texte dans Matlab

'AnatomicImage:13' 
'AnatomicImageNumber:13' 
'ColorMapMaximum:20' 
'ColorMapMinimum:0' 
'SpectroscopySliceNumber:3'  

mais il devient écrit au fichier texte comme celui-ci

AnatomicImage:13,AnatomicImageNumber:13,ColorMapMaximum:20,ColorMapMinimum:0,SpectroscopySliceNumber:3 

J'ai inclus mon pat de code qui a été emprunté à un autre poste sur Stackoverflow.

AnatomicImage = 'AnatomicImage: '; 
AnatomicImage = strcat(AnatomicImage, num2str(imNum)); 
AnatomicImageNumber = 'AnatomicImageNumber: ' 
AnatomicImageNumber = strcat(AnatomicImageNumber, num2str(imNum)); 
ColorMapMaximum = 'ColorMapMaximum: '; 
ColorMapMaximum = strcat(ColorMapMaximum, num2str(max)); 
ColorMapMinimum = 'ColorMapMinimum: '; 
ColorMapMinimum = strcat(ColorMapMinimum, num2str(min)); 
SpectroscopySliceNumber = 'SpectroscopySliceNumber: '; 
SpectroscopySliceNumber = strcat(SpectroscopySliceNumber, num2str(sliceNum)); 

fid=fopen('data.txt','wt'); 

data = {AnatomicImage;AnatomicImageNumber;ColorMapMaximum; ColorMapMinimum; SpectroscopySliceNumber} 

txtFun = @(str)sprintf('%s,',str) 
xchar = cellfun(txtFun, data, 'UniformOutput', false) 
xchar = strcat(xchar{:}) 
xchar = strcat(xchar(1:end-1),'\n') 

fprintf(fid,xchar) 

fclose(fid); 

Répondre

2

Modifier la section pertinente à:

txtFun = @(str)sprintf('%s,\n',str) 
xchar = cellfun(txtFun, data, 'UniformOutput', false) 


fid=fopen('data.txt','wt'); 
for i=1:numel(xchar) 
    fprintf(fid,'%s',xchar{i}) 
end 
fclose(fid); 

En outre, envisager d'utiliser le fichier-io sécurité - voir ma réponse here

Questions connexes