Добавьте двойной пробел в качестве разделителя

У меня есть огромное количество больших текстовых файлов, которые нужно переформатировать, чтобы их можно было прочитать с помощью FEAT (программа анализа МРТ). FSL читает текстовые файлы с двойным пробелом в качестве разделителя. Я использую matlab для добавления нужной мне строки в текстовые файлы и пытаюсь экспортировать полученный массив в виде текстового файла с разделителем двойных пробелов, но не могу понять, как это сделать. сделай это. dlmwrite допускает использование только отдельных символов в качестве разделителей.

Есть идеи?

1 ответ

Вы можете использовать свою собственную версию 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);
Другие вопросы по тегам