Сохранить ячейку с числами в текстовый файл
У меня есть массивы ячеек A и B с разной длиной и номерами.
A={1:0.5:5;1:0.5:2};
B={1:0.5:6;1:0.5:9};
C= [A;B];
Я хочу объединить эти массивы ячеек в массив ячеек C, который будет выглядеть следующим образом:
C =
4×1 cell array
{1×9 double}
{1×3 double}
{1×11 double}
{1×17 double}
Затем я хочу сохранить это в текстовый файл, который должен выглядеть так:
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000
1.0000 1.5000 2.0000
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 5.5000 6.0000
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 5.5000 6.0000 6.5000 7.0000 7.5000 8.0000 8.5000 9.0000
Пока я нашел код только для текста или массивов того же размера. Это моя попытка, которая не работает:
fid = open('filename.txt', 'wt');
fprintf(fid, '%f',C{:})
close(fid)
1 ответ
Решение
Я считаю, что проблема может заключаться в формате, который вы указываете для
fprintf
, как я полагаю, используя только
'%f'
напечатает по одному числу в каждой строке.
Один из способов сделать это:
fid = fopen('filename.txt', 'wt');
for i = 1:length(C)
fmt = repmat('%f ',size(C{i})); % this only adds one whitespace in between numbers
fmt = [fmt,'\n']; % remember to add a new line
fprintf(fid,fmt,C{i});
end
fclose(fid);