教程 > > 阅读:82

matlab 数据导出——迹忆客-ag捕鱼王app官网

matlab数据输出意味着将数据写入文件,可以将数据在读取ascii文件的其他应用程序中使用。matlab提供了几种数据导出选项:

  • 将数组导出为分隔符分隔的ascii数据文件。
  • 记录键盘输入和生成的文本输出的日记(或日志)文件。
  • 使用低级函数(如fprintf)创建专用的ascii文件。
  • 创建mex文件以访问编写特定文本文件格式的c / c 或fortran例程。
  • 此外,还可以将数据导出到电子表格中。

将数字数组导出为分隔符分隔的ascii数据文件有两种方法:

  • 使用 save 函数并指定-ascii限定符
  • 使用 dlmwrite 函数

使用 save 函数的语法是:

save my_data.out num_array -ascii

其中 my_data.out 是创建的分隔符分隔的ascii数据文件,num_array 是数字数组,-ascii 是限定符。

使用 dlmwrite 函数的语法是:

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

其中,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

运行文件后,将显示以下结果:

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

请注意save -ascii 命令和 dlmwrite 函数不适用于输入为单元数组的情况。要从单元数组的内容创建分隔符分隔的ascii文件,可以:

  • 使用cell2mat函数将单元数组转换为矩阵
  • 使用底层文件i/o函数导出单元数组

如果使用 save 函数将字符数组写入ascii文件,则将字符的ascii等效形式写入文件。

例如,让我们将单词'hello'写入文件:

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

matlab 执行上述语句并显示以下结果。 这是 8 位 ascii 格式的字符串 'hello' 的字符。

1.0400000e 02   1.0100000e 02   1.0800000e 02   1.0800000e 02   1.1100000e 02

写入 diary 文件

diary 文件是matlab会话的活动日志。diary 函数创建您的会话的精确副本并保存在磁盘文件中,但不包括图形。

要打开 diary 函数,请输入

diary

我们可以选择给出日志文件的名称,例如 -

diary logdata.out

要关闭 diary 功能,请输入 -

diary off

我们可以在文本编辑器中打开 diary 文件。


使用底层 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

运行此脚本后,将显示以下结果。

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

查看笔记

扫码一下
查看教程更方便
网站地图