📄
字号:
在matlab中数组的下标是从1开始的,而C中的数组是从0开始的,所以在互相调用的时候需要作相应的加一和减一的操作。但在mex接口函数中不用考虑这些。
Matlab中M行N列的数组是按先从第一列开始顺序读入C中的一维数组的,例如2*8的矩阵先是第一列的两个,然后第二列的两个……直到第八列的两个这样的顺序存入C中的1*16的数组中。
Matlab和C中的同一个数据类型可能计算会有微小的差别。
在VC中调试动态链接库中C写的程序。
首先在VC中打开需要调试的dll文件,然后点击在VC中的Project下拉菜单中的Settings…,选择Debug页,在Executable for debug session: 中输入Matlab安装文件下的MATLAB.exe。我的Matlab安装在D盘,所以输入D:\MATLAB701\bin\win32\MATLAB.exe。
然后打开相应的dll文件。
编辑完dll文件后,打开相应的C文件,再打开matlab,把matlab的路径设成dll文件所在的路径,然后在matlab命令窗口中输入mex –g 和相应的C文件。
这样在VC中运行调试,就会自动调用Matlab,Matlab窗口弹出来后键入主m文件的文件名就ok了。
在一个目录下的C文件生成DLL文件到另一个目录下的方法:
例如在D:有Test.c,然后要生成Test.dll到E:/Test,
则使用命令 mex Test.c -outdir E:/Test
如果文件比较大,需要很多文件,并且有从属关系,则联合编译
mex file1.c file2.c...
文件好像没有先后关系
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -