我需要将多个数组保存到以下格式的文本文件中:
n=2 % 数组数量
r=3 % 第一个数组中的行数
1 2 3 % 实际数据
4 5 6
7 8 9
r=3 % 第二个数组中的行数
5 6 7 % 实际数据
1 2 3
7 8 9
请你帮忙
使用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);
到目前为止你做了什么?
作为一般规则,对于这种事情,你的朋友是函数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 函数允许您指定所需的矩阵格式。