Wednesday, February 4, 2009

怎么把Matlab中数组元素写入到文本文档中

问: 怎么把Matlab中数组元素写入到文本文档中???

答: 下面是几个常用的函数:

(1)matGetNextMatrix:读取MAT文件中的下一个矩阵,调用格式如下:integer*4 function matGetNextMatrix(mfp)integer*4 mfp 说明:函数读取mfp所指向的MAT文件的下一个矩阵的数据并返回一个mxArray类型的指针。

(2)matGetDir:获得MAT文件中的所有矩阵目录,调用格式如下:integer*4 function matGetDir(mfp,num)integer*4 mfp,num说明:函数从mfp指向的MAT文件中获取所有矩阵的目录。如果执行成功,将返回一个字符串指针数组,数组每个元素均为字符串指针,指向的字符串表示MAT文件中矩阵的目录。若函数执行失败,num返回为-1,并连接一个空指针。如果num为0,则表示MAT文件没有矩阵。

(3)mexErrMsgTxt:用于输出错误信息,并返回到MATLAB命令提示符下,调用格式如下:subroutine mexErrMsgTxt(error_smg)character*(*)error_msg说明:error_smg为字符串常量,当程序执行后,在MATLAB窗口中显示错误信息error_smg,并终止程序运行。

(4)mxGetM、mxGetN:分别用来获取矩阵的行数和列数,调用格式相同,格式如下:integer*4 function mxGetN(pm)integer*4 pm说明:pm为形式参数,指定一个矩阵,返回整数。

(5)mxIsNumeric:判断矩阵是否为数值类型矩阵,调用格式如下:integer*4 function mxIsNumeric(pm)integer*4 pm

(6)mxCreateFull:创建一个二维的未赋值的满矩阵,调用格式如下:integer*4 function mxCreateFull(m,n,ComplexFlag)integer*4 m,n,ComplexFlag说明:m,n分别为创建矩阵的行数和列数。ComplexFlag为0表示创建实数类型矩阵,ComplexFlag为1表示创建复数类型矩阵。

(7)mxGetPr、mxGetPi:获得矩阵的实数或虚数部分,调用格式相同,如下:integer*4 function mxGetPr(pm)integer*4 pm说明:如果函数执行成功则获得一个指向pm第一个实数部分的指针。

(8)mxCopyPtrToReal8、mxCopyReal8ToPtr:将某个矩阵的实数或虚数部分的数据复制到一个实数组中,后一个正好相反,调用格式如下:subroutine mxCopyPtrToReal8(px,y,n)integer*4 px,nreal*8 y(n)subroutine mxCopyReal8ToPtr(y,px,n)integer*4 px,nreal*8 y(n)说明:px为指向某个矩阵的实数或虚数部分的指针,n为需要复制单元的个数,y为实数类型的数组。


More details could be found in my published book:
MATLAB编程基础与典型应用
北京:人民邮电出版社,2008
ISBN:978-7-115-17932-6/TP

Pls contact me with Email:lhd06@mails.tsinghua.edu.cn

No comments: