MATLAB 数据输出

MATLAB 数据输出

MATLAB中的数据导出(或输出)意味着将数据写入文件。MATLAB允许你在另一个读取ASCII文件的应用程序中使用你的数据。为此,MATLAB提供了几种数据导出选项。

你可以创建以下类型的文件 −

  • 从数组创建矩形分隔的ASCII数据文件。

  • 键盘输入和结果文本输出的日志(或记录)文件。

  • 使用fprintf等底层函数创建特殊的ASCII文件。

  • 用于访问写入特定文本文件格式的C/C++或Fortran例程的MEX文件。

除此之外,你还可以将数据导出到电子表格中。

导出数字数组作为分隔的ASCII数据文件有两种方法 −

  • 使用 save 函数并指定 -ascii 修饰符

  • 使用 dlmwrite 函数

使用save函数的语法为 −

save my_data.out num_array -ascii
MATLAB

在这里, my_data.out是创建的分隔的ASCII数据文件, num_array是一个数字数组,并且 −ascii 是指定符号。

使用 dlmwrite 函数的语法如下−

dlmwrite('my_data.out', num_array, 'dlm_char')
MATLAB

其中, my_data.out是创建的分隔的ASCII数据文件, num_array是一个数值数组, dlm_char是分隔符字符。

示例

下面的示例演示了这个概念。创建一个脚本文件并输入以下代码 –

num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii;
type array_data1.out
dlmwrite('array_data2.out', num_array, ' ');
type array_data2.out
MATLAB

当你运行文件时,会显示以下结果:

1.0000000e+00   2.0000000e+00   3.0000000e+00   4.0000000e+00
   4.0000000e+00   5.0000000e+00   6.0000000e+00   7.0000000e+00
   7.0000000e+00   8.0000000e+00   9.0000000e+00   0.0000000e+00

1 2 3 4
4 5 6 7
7 8 9 0
MATLAB

请注意,使用save -ascii命令和dlmwrite函数无法处理作为输入的单元格数组。要从单元格数组的内容创建一个分隔的ASCII文件,您可以采取以下两种方法:

  • 将单元格数组转换为矩阵,使用cell2mat函数
  • 使用底层文件I/O函数导出单元格数组

如果您使用save函数将字符数组写入ASCII文件,则会将字符的ASCII等效值写入文件中。
例如,让我们将单词’hello’写入文件中 –

h = 'hello';
save textdata.out h -ascii
type textdata.out
MATLAB

MATLAB执行上述语句并显示以下结果。该结果是字符串“hello”以8位ASCII格式表示的字符。

1.0400000e+02   1.0100000e+02   1.0800000e+02   1.0800000e+02   1.1100000e+02
MATLAB

写入日记文件

日记文件是您的MATLAB会话的活动日志。diary函数将您的会话的完全副本创建在磁盘文件中,不包括图形。

要打开日记功能,请键入:

diary
MATLAB

可选择地,您可以给日志文件指定名称,例如−

diary logdata.out
MATLAB

关闭日记功能 –

diary off
MATLAB

你可以在文本编辑器中打开日记文件。

使用低级I/O将数据导出为文本数据文件

到目前为止,我们已经导出了数值数组。然而,您可能需要创建其他文本文件,包括数值和字符数据的组合,非矩形输出文件或具有非ASCII编码方案的文件。为此,MATLAB提供了低级 fprintf 函数。

与低级I/O文件活动类似,在导出之前,您需要使用 fopen 函数打开或创建一个文件,并获得文件标识符。默认情况下,fopen以只读访问模式打开文件。您应该指定写入或追加的权限,比如’w’或’a’。

在处理完文件后,您需要使用 fclose(fid) 函数关闭它。

以下示例演示了这个概念 −

示例

创建一个脚本文件并在其中键入以下代码 −

% create a matrix y, with two rows
x = 0:10:100;
y = [x; log(x)];

% open a file for writing
fid = fopen('logtable.txt', 'w');

% Table Header
fprintf(fid, 'Log     Function\n\n');

% print values in column order
% two values appear on each row of the file
fprintf(fid, '%f    %f\n', y);
fclose(fid);

% display the file created
type logtable.txt
MATLAB

当您运行该文件时,会显示以下结果−

Log         Function

0.000000    -Inf
10.000000    2.302585
20.000000    2.995732
30.000000    3.401197
40.000000    3.688879
50.000000    3.912023
60.000000    4.094345
70.000000    4.248495
80.000000    4.382027
90.000000    4.499810
100.000000    4.605170
MATLAB

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册