一般在matlab中打印数据,肯定都是打印的矩阵里面的数据。这里随便设计一个矩阵数据

A = [   1,2,3;  ...
        4,5,6;  ...
        7,8,9;  ];

1.基本打印流程

1.1.读取数据fopen函数

fid = fopen('data.txt','wt');

后面再对该文件进行操作,都是对fid进行操作,文件名为data.txt。后面的wt是对于该文件的操作方式,本来是w,加个t是为了生成一个文本文件(txt类型文件),读取操作解释如下表。

操作符

功能

'r

打开要读取的文件。

‘w’

打开或创建要写入的新文件。放弃现有内容(如果有)。

‘a’

打开或创建要写入的新文件。追加数据到文件末尾。

‘r+’

打开要读写的文件。

‘w+’

打开或创建要读写的新文件。放弃现有内容(如果有)。

‘a+’

打开或创建要读写的新文件。追加数据到文件末尾。

‘A’

打开文件以追加(但不自动刷新)当前输出缓冲区。

‘W’

打开文件以写入(但不自动刷新)当前输出缓冲区。

1.2.打印数据fprintf函数

将矩阵数据打印到该文件中。

fprintf(fid,'%d ',A);

matlab 调用java matlab 调用打印机打印文件_转置


可见打印的数据是按照列进行打印的,先打印第一列,然后依次第二列直到最后一列。

如果想按行打印,可以用矩阵转置的方式。

fprintf(fid,'%d ',A');

matlab 调用java matlab 调用打印机打印文件_转置_02


备注:这里A'是矩阵共轭转置,A.是矩阵的转置

1.2.1.操作符使用

有时候为了观察数据比较方便,想打印成矩阵的样子,其代码就可以这样写。

[m,n] = size(A);
fprintf(fid,'矩阵A为:\n');
for i = 1 : m
    for j = 1 : n
        fprintf(fid,'%d\t',A(i,j));
    end
    fprintf(fid,'\n');
end

matlab 调用java matlab 调用打印机打印文件_数据_03


也可以按照自己实际需求去写

这个一般可能需要使用别的操作符,各种操作符的表示形式如下:

特殊字符

表示形式

单引号

‘’

百分比字符

%%

反斜杠

\

警报

\a

退格符

\b

换页符

\f

换行符

\n

回车符

\r

水平制表符

\t

垂直制表符

\v

其 Unicode® 数值可以通过十六进制数 N 表示的字符

\xN 示例:sprintf(’\x5A’) 返回 ‘Z’

其 Unicode 数值可以通过八进制数 N 表示的字符

\N 示例:sprintf(’\132’) 返回 ‘Z’

1.3.关闭文件fclose函数

在我们matlab代码设计中,关闭文件是非常重要的,我们对一个文件处理完之后,一定要记得写关闭文件,不然对于大型的算法验证来说,会导致文件打开过多,程序跑崩的情况。
函数使用如下:

fclose(fid);

1.4.其他打印矩阵数据的方式

可以直接使用这个函数按照矩阵的格式把数据打印出来。

dlmwrite('data.txt',A,'\t');

'data.txt'是存储的文件名,A是矩阵,'\t'是指每个元素后面带个制表符。

最终结果如图:

matlab 调用java matlab 调用打印机打印文件_数据_04

2.矩阵的相关变换函数

有时候想打印一个矩阵的数据,并且需要打印成矩阵的格式,一般就可以用上面提到的dlmwrite函数直接打印,不要用for循环进行打印,个人感觉,for循环要比较耗时间。如果打印的矩阵需要进行一些变换,这样在用dlmwrite函数的时候就需要对矩阵进行相关的变换才行。
比如我们想把矩阵的数据倒着进行打印,那就需要把矩阵旋转180度。就可以这样写

dlmwrite('data1.txt',rot90(A,2),'\t');

matlab 调用java matlab 调用打印机打印文件_matlab 调用java_05


相关矩阵操作函数如下:

函数

功能

A.’

转置

A’

共轭转置

inv(A)

逆矩阵

rot90(A,i)

i为正,为逆时针旋转,I为负,为顺时针旋转。如i为2就是逆时针180度,为-1为顺时针90度