记录一下Matlab R2018a使用技巧
- Online版本
- 1.导入3d模型
- 2.GUI设计使用
- 3.离散仿真
- 4.滤波器的使用
- 6.串口操作
- 7.与C++联合编程
- 8.与python联合编程
- 9.Matlab调用外部包
- 10.使用Matlab 自带模块进行机器学习参数设置
Online版本
注册后,可以使用在线版本进行一些数学运算
1.导入3d模型
- matlab:导入stl格式的模型,在matlab中使用模型
- Simulink:安装SimMechanics插件,即可调用solidworks的模型
2.GUI设计使用
1
2
3
1.m 函数方式:使用uicontrol来建立控件对象
2.GUI设计工具:guide设计
3.离散仿真
4.滤波器的使用
使用FDAtool来进行滤波器设计:
例子:1、输入:被白噪声污染的正弦信号,fs=100khz,信号频率为10khz,噪声信号为20khz,现在要滤掉20khz的正弦信号。
1
2
3
4
5
6
7
8
9
10
11
12
clear all;
fs=100000;
t=0:1/fs:0.003;
f1=10000;
f2=20000;
signal1=sin(2*pi*f1*t);
signal2=sin(2*pi*f2*t);
y=signal1+signal2;
plot(y);
hold on;
plot(signal1,'r');
legend('被污染的信号','理想信号');
参考:https://blog.csdn.net/qsj8362234/article/details/8275511
6.串口操作
https://blog.csdn.net/guomutian911/article/details/41206663
7.与C++联合编程
C++调用Matlab
-
一、调用Matlab的计算引擎
1、以管理院身份运行命令提示符,切换到”matlab.exe“路径,输入「 matlab \ regserver」 命令进行注册
1 2
>D:\matlab\R2018a\bin >D:\matlab\R2018a\bin\matlab \regserver
若不注册,在使用engOpen()打开Matlab引擎会提示失败
2、VS2017配置及Demo
- 打开工程属性页,在”调试”-”环境“中,添加”PATH=<Matlab安装路径\bin\win64>“
- 在”VC++目录“中,”可执行文件目录“中添加”Matlab安装路径\bin\win64“;”包含目录”中添加”Matlab安装路径\extern\include“,”库目录”中添加”Matlab安装路径\extern\lib\win64\microsoft“。
- 在”链接器“-”输入“中,”附加依赖性“中添加”libmat.lib“,”libeng.lib”,”libmx.lib“
Demo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
#include<cstdlib> #include <cstdio> #include<cstring> #include"engine.h" const int BUFFER_SIZE = 1024; char buffer[BUFFER_SIZE]; void test() { Engine* ep; mxArray *x1 = NULL; mxArray *y1 = NULL; if ((ep = engOpen("")) == NULL) { printf("Engine Fail\n"); } engOutputBuffer(ep, buffer, BUFFER_SIZE); printf("Init Success\n"); double x[5] = { 1.0, 2.5,3.7,4.4,5.1 }; double y[5] = { 3.3,4.7,9.6,15.6,21.3 }; x1 = mxCreateDoubleMatrix(1, 5, mxREAL); y1 = mxCreateDoubleMatrix(1, 5, mxREAL); memcpy((char*)mxGetPr(x1), (void *)x, 5*sizeof(double)); memcpy((char*)mxGetPr(y1), (void *)y, 5*sizeof(double)); engPutVariable(ep, "x", x1); engPutVariable(ep, "y", y1); engEvalString(ep, "plot(x,y)"); getchar(); engClose(ep); } int main() { test(); }
参考:https://blog.csdn.net/shouzang/article/details/80795945
-
二、调用Matlab中由mcc编译生成的dll文件
1
mcc -B csharedlib:MyFunc MyFunc.m
Matlab调用C++程序,利用了C++编译快的特点,可以把一些复杂的过程放在C++中实现从达到加速的效果
C++调用Matlab,则利用Matlab在数学计算方面的优势,以及各种便利的工具包。
- 在”链接器“-”输入“中,”附加依赖性“中添加”libmat.lib“,”libeng.lib”,”libmx.lib“
#动态链接库基础
#动态链接库编译生成
-
命令
-
GUI
matlab调用C++
参考: https://zhuanlan.zhihu.com/p/30367346
https://blog.csdn.net/nanzhanfei/article/details/80852743
https://blog.csdn.net/qq_20515461/article/details/81229726
https://blog.csdn.net/shouzang/article/details/80795945
https://blog.csdn.net/wokaowokaowokao12345/article/details/80839187(讲解两种方法)
8.与python联合编程
9.Matlab调用外部包
参考:https://blog.csdn.net/wokaowokaowokao12345/article/details/87543984
介绍
LIBSVM是台湾大学林智仁(Chih-Jen Lin)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,目前最新版本是3.23。博文中在MATLAB平台配合实例学习掌握LIBSVM,希望可以对SVM感兴趣的朋友有一定的帮助。
10.使用Matlab 自带模块进行机器学习参数设置
https://zhuanlan.zhihu.com/p/87554660
相关资料: Matlab Compiler SDK 使用步骤及常见问题总结(全) 使用coder将Matlab 代码迁移至Cpp1 使用coder将Matlab 代码迁移至Cpp2