将带有数字的单元格保存到文本文件

时间:2020-09-10 13:27:34

标签: matlab cell txt

我的单元格数组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 个答案:

答案 0 :(得分: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);
相关问题