matlab学习

最近在看师姐的一个matlab程序,记录一下最近了解到的一些知识,便于以后整理。

1、matlab中为什么用mex,怎么用?
转载:http://blog.sina.com.cn/s/blog_5e8715490101uq0p.html
matlab程序默认的程序文件是 .m 文件,但以下情况下需要用matlab调用C语言程序:
(1)matlab程序中的某些模块非常耗时,改用C语言编写可以提高执行速度。
(2)现有成熟算法已经用C语言编写完成,但是matlab程序需要调用其中的某一算法,但不想改写成为.m程序
(3)从.m程序可以直接获取源代码,为了保护知识产权,作者希望只提供接口,和库函数,供使用者调用。类似于Windows系统动态链接库(.dll)
以上这些问题都可以通过mex文件解决。
什么是mex文件?
MEX从字面上是MATLAB和Executable两个单词的缩写。 即:matlab可执行文件的缩写。
.MEX文件是一种可在matlab环境中调用的C(或fortran)语言衍生程序,MEX文件的后缀名按32位/64位分别为.mexw32/.mexw64。
MEX文件是由C或Fortran语言编写的源代码,经matlab编译器处理而生成的二进制文件。它是可以被matlab解释器自动装载并执行的动态链接程序,类似windows下的dll文件。
MEX文件实现了一种其它语言与MATLAB的接口,通过MEX文件可以在MATLAB中像调用内嵌函数一样调用使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能提高MATLAB环境中数据处理的效率。
怎么用mex函数?
如果需要引用其他需要编译的.c .cpp文件,使用mex a.cpp即可,输入为a.cpp文件,输出为a.mexw64文件,mexw是windows下使用的文件,mexa是linux下使用的文件。
编译完成后生成的mexw文件相当于一个带输出函数的dll程序,可以直接在matlab控制窗口中输入:
x=2;
y=test(x)
输出:y=4
test.c源码如下:

 #include
#include "mex.h"
void mexFunction( int nlhs, mxArray *plhs[], int nrhs,const mxArray*prhs[] )
{
   double *p_out;
   double input_data;  
   input_data = mxGetPr(prhs[0])[0];
   
   plhs[0] = mxCreateDoubleMatrix(1,1, mxREAL);  
   p_out = mxGetPr(plhs[0]);  
   p_out[0] = 2*input_data;  
   return;
}

参考链接:http://blog.sina.com.cn/s/blog_5e8715490101uq0p.html
错误使用mex,未找到支持的编译器或 SDK的提示
原因是配置文件不对。我用的是matlab2017a配置VS2017https://ww2.mathworks.cn/support/bugreports/1487958
需要将下载链接页面最下面的attachment_1487958_17a_win64_2017-05-10.zip
解压并将bin\win64\mexopts下的两个文件复制到MATLAB安装文件夹对应目录下,然后就MATLAB就可以调用VS2017的编译器了。
参考博客:https://blog.csdn.net/yuan_hust/article/details/80099949
https://blog.csdn.net/cfqcfqcfqcfqcfq/article/details/63295746?utm_source=blogxgwz1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习MATLAB时,编写学习笔记是一种很好的方法,可以帮助您记录重要的概念、语法和技巧,以及解决问题的步骤。以下是一些关于编写MATLAB学习笔记的建议: 1. 组织结构:使用清晰的标题和分节来组织您的学习笔记。将不同的主题分成单独的部分,并使用子标题来进一步细分内容。 2. 内容概要:在每个部分或子标题下,写下该主题的概要。这样可以帮助您回顾和理解该主题的关键点。 3. 示例代码和输出:对于每个主题,包括一些示例代码和相应的输出结果。这有助于您理解和演示具体的MATLAB语法和功能。 4. 问题与解答:如果您在学习过程中遇到了一些困惑或问题,将其记录下来,并在笔记中提出并解答这些问题。这样可以帮助您深入思考并加深对该主题的理解。 5. 笔记补充:除了基本概念和语法外,您还可以添加一些额外的笔记,如最佳实践、编程技巧、常见错误等。这些额外的笔记可以提供更多的实用信息和提示。 6. 参考资料:在您的学习笔记中,包括引用的参考资料,如教程、文档、书籍或网站链接。这样,您可以随时回顾并深入研究相关的主题。 7. 总结和复习:在学习笔记的结尾,添加一个总结部分,回顾和总结您学到的重点和关键概念。此外,定期复习您的学习笔记也是加深理解和记忆的好方法。 以上是关于编写MATLAB学习笔记的一些建议。希望这对您有所帮助,并祝您在MATLAB学习过程中取得成功!如果有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值