我有大量需要重新格式化的大文本文件,以便FEAT(MRI分析程序)可以读取它们。 FSL以双空格作为分隔符读取文本文件。我一直在使用matlab添加我需要的一行信息到txt文件,我试图让它将结果数组导出为带有双空格分隔符的文本文件,但我无法弄清楚如何做到这一点。 dlmwrite只允许将单个字符用作分隔符。
有什么想法吗?
答案 0 :(得分:0)
您可以使用自己的dlmwrite版本。例如:
function my_dlmwrite(filename, m, delimiter_string, sigfigs)
if(~ischar(delimiter_string))
error('delimiter string should be a string');
end
if(~isnumeric(m) || ~(isreal(m)))
error('matrix should be a real matrix of doubles')
end
if(~isscalar(sigfigs))
error('the number of significant figures to print should be a scalar');
end
if(sigfigs < 5)
warning('do you really want fewer than 5 significant significant digits?');
end
fid = fopen(filename ,'W'); %open for writing and dont flush for better performance
[n_rows, n_cols] = size(m);
for(i=1:n_rows)
fprintf(fid, '%.*g', sigfigs, m(i, 1));
for(j=2:n_cols)
fprintf(fid, '%s%.*g', delimiter_string, sigfigs, m(i, j));
end
fprintf(fid,'\n');
end
fclose(fid);