Добавьте двойной пробел в качестве разделителя
У меня есть огромное количество больших текстовых файлов, которые нужно переформатировать, чтобы их можно было прочитать с помощью 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);