添加双 space 作为分隔符

Add a double space as a delimiter

我有大量大型文本文件需要重新格式化,以便 FEAT(一种 MRI 分析程序)可以读取它们。 FSL 读取带有双 space 作为分隔符的文本文件。我一直在使用 matlab 向 txt 文件添加一行我需要的信息,我试图让它将结果数组导出为带有双 space 分隔符的文本文件,但我不能弄清楚该怎么做。 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);