- 积分
- 0
- 注册时间
- 2009-12-9
- 仿真币
-
- 最后登录
- 1970-1-1
|
fortran语言的mex文件如下:
subroutine mexFunction(nlhs,plhs,nrhs,prhs)
c ! 声明变量
integer y_pr
integer m,n,size
real*8 y(3,2)
integer plhs(*)
c ! 根据输入或根据需要,定义输出矩阵大小
m=3
n=2
size=m*n
c ! 创建需要返回的输出mxArray变量
plhs(1)=mxCreateDoubleMatrix(m,n,0)
c ! 获得指向数据的指针
y_pr=mxGetPr(plhs(1))
c ! 矩阵y像一般的fortran矩阵那样进行各种运算
y(1,1)=2.0
c ! 把数据复制到返回matlab数据mxArray中
call mxCopyReal8ToPtr(y,y_pr,size)
end subroutine
这段命令就是生成一个矩阵y=[2.0 0.0
0.0 0.0
0.0 0.0]
如果我想把这个矩阵保存于matlab工作空间,在matlab中直接对这个矩阵进行操作,比如:>> x=y*2.0
该如何实现呢? |
|