添加一个双空格作为分隔符



我有大量的大型文本文件需要重新格式化,以便FEAT(MRI分析程序)可以读取它们。FSL读取以双空格作为分隔符的文本文件。我一直在使用matlab向txt文件中添加一行我需要的信息,我正试图让它将生成的数组导出为带有双空格分隔符的文本文件,但我不知道如何做到这一点。dlmwrite只允许使用单个字符作为分隔符。

有什么想法吗?

您可以使用自己版本的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);

相关内容

  • 没有找到相关文章