2012-02-01 122 views
2

我想在Matlab中寫出一些數據到文本文件,但我遇到了問題。我想這個文件,看起來像這樣在Matlab中寫入文本文件

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

但越來越寫入文本文件這樣

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

我已經包括了我的代碼拍拍它的是從#2另一篇文章中借來的。

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); 

回答

2

改變相關的部分:

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); 

此外,可以考慮使用安全文件IO - 看到我的回答here