1

我需要将多个数组保存到以下格式的文本文件中:

n=2 % 数组数量

r=3 % 第一个数组中的行数
1 2 3 % 实际数据
4 5 6
7 8 9

r=3 % 第二个数组中的行数
5 6 7 % 实际数据
1 2 3
7 8 9

请你帮忙

4

2 回答 2

4

使用fprintf。如果您的数组存储在单元格数组中,以便您可以遍历它们。

arrays = cell(N, 1); %A cell array of arrays

f = fopen('output.txt', 'w');
fprintf(f, 'n=%i\n', N);

for i=1:N
  rows = size(arrays{i}, 1);
  fprintf(f, '\nr=%i\n', rows);
  for j=1:rows
    fprintf(f, '%g ', arrays{i}(N, :));
    fprintf(f, '\n');
  end
end
fclose(f);
于 2012-04-11T16:25:46.237 回答
1

到目前为止你做了什么?

作为一般规则,对于这种事情,你的朋友是函数fprintf,它将数据打印到文件,和varargin,它允许你为函数提供可变长度的参数列表。因此,处理此类任务的函数的良好签名可能是

function [output_args] = pretty_save_to_file(fName, varargin)

fName是您要将数据保存到的文件的名称,并且varargin是您要保存的矩阵名称的占位符。一旦你填写了函数的血腥细节,你应该可以使用类似的东西来调用它

pretty_save_to_file('output.txt', A, B, C) % prints matrices A, B, and C to output.txt

此外,由于您要确定每个矩阵中的行数,您可能会发现以下涉及size函数的片段很有用:

[nrows, ncols] = size(A); % Stores the number of rows and columns of A in nrows, ncols

最后, fprintf 函数允许您指定所需的矩阵格式。

于 2012-04-11T16:27:32.457 回答