Help with Mex function
1 次查看(过去 30 天)
显示 更早的评论
Hello, I'm having trouble getting a mex function to work. I think I've narrowed down the problem but anytime I try to fix anything Matlab shuts down.
I want to send a nested struct through a mex file myvar.myfield.mysubfield, where subfield is a 3-d position vector. I want to do mymexfunc(myvar).
mwPointer mxGetField
mwPointer mxGetPr
mwPointer mxcreatedoublematrix
mwIndex index
mwpointer var_ptr, fd_ptr, sfd_ptr
var_ptr = mxgetpr(prhs(1))
fd_ptr = mxgetfield(var_ptr,1,'myfield')
sfd_ptr = mxgetfield(fd_ptr,1,'mysubfield')
myvar%myfield%mysubfield = fpgetpr(sfd_ptr)
copy mxcopyptrtoreal8(sfd_ptr,myvar%myfield%mysubfield,size)
Matlab crashes when I try to do this and I wanted to know if anyone can see what I'm doing wrong.
0 个评论
采纳的回答
James Tursa
2012-7-9
编辑:James Tursa
2012-7-9
mwPointer mxGetField
mwPointer mxGetPr
mwPointer mxcreatedoublematrix
mwIndex index
mwpointer var_ptr, fd_ptr, sfd_ptr
fd_ptr = mxgetfield(prhs(1),1,'myfield') ! Result is mxArray pointer
sfd_ptr = mxgetfield(fd_ptr,1,'mysubfield') ! Result is mxArray pointer
var_ptr = mxgetpr(sfd_ptr) ! Result is real*8 pointer
copy mxcopyptrtoreal8(var_ptr,myvar%myfield%mysubfield,size)
I would use different names for the "size" and "index" variables, since those are names of Fortran intrinsic functions.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!