将数据从Matlab写入文本文件

时间:2012-04-11 15:58:34

标签: matlab file-io

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

  

n = 2%的数组

     

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

你能帮忙吗

2 个答案:

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

答案 1 :(得分:1)

到目前为止你做了什么?

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

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函数允许您指定矩阵的所需格式。