Сохранить ячейку с числами в текстовый файл

У меня есть массивы ячеек 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);
Другие вопросы по тегам