从零开始学C#,先学c++再学c
前言
本文主要研究如何将矩阵实验室的m文件,编译成C代码,然后分别在窗子平台和Linux操作系统操作系统平台完成调用,代码组织采用第一种完成。
整体流程
通过矩阵实验室编译器可以将矩阵实验室的代码编译成C/C .NET、Java或计算机编程语言的类库,从而实现对于矩阵实验室程序的调用。本文主要研究C的应用。m文件编译
我们写一个非常简单的m文件,命名为mymagic.m
函数out=mymagic(in)
out=magic(在);
目标接下来选择app -》。库编译器
选择C编译,依顺序从左往右,最后选择包裹进行打包。
打包成功之后,会生成如下文件,我们重点关注下面两个
仅限于_重新分发_文件文件夹主要存在四个文件比较重要:
其中窗子生成的是。动态链接库文件,linux生成的是因此文件。这里有一个。周大福文件,需要拷贝到程序运行路径,这里放了大量矩阵实验室运行时的信息。
用于测试文件夹会将生成的h。和。卡片打印处理机(卡片打印处理器的缩写)都放置出来,方便我们排查问题故障。其他和上面一样。
至此,我们完成了m文件的编译,并生成了相应的C库。
C调用
这里要注意生成的C函数的参数和矩阵实验室不太一样,我们找到生成的函数的定义:
LIB _ MyMatrixFunctions _ CPP _ API void MW _ CALL _ conv
mymagic(int nargout,mwArray out,const mwArray in)
{
mccppmlffeval(_ MCR _ inst, mymagic ,nargout,1,1,out,in);
}我们仔细看发现这个函数有3个入参,第一个表示返回值的个数,后面为返回的值,最后一个才是我们的输入的参数。
写一个简单的主要的函数如下:
mymatrixfunctionsininitialize函数执行的是初始化工作,加载前面生成的周大福文件,必须在使用之前进行调用。
//CMakeProject.cpp:定义应用程序的入口点。
//
#包含" CMakeProject.h "
#include MyMatrixFunctions.h
使用命名空间标准
int main()
{
cout Hello CMake endl
如果(!MyMatrixFunctionsInitialize())
{
标准:cerr "无法正确初始化库"
STD:endl;
return-1;
}
mwArray mw1
mwArray mw2(3);
mymagic(1,mw1,mw2);
std:cout 矩阵与其自身的和为: STD:endl;
STD:cout mw1 STD:endl;
返回0;
}这里采用第一种组织代码,vscode进行开发。
第一种的窗子下的格式如下:
# CMakeList.txt : CMake项目的CMake项目,包含源代码并定义
#此处为项目特定逻辑。
#
cmake_minimum_required(版本3.8)
项目(“CMakeProject”)
include _ directory( D:/Program Files/Polyspace/r 2020 a/extern/include )
link _ directory( D:\ \ Program Files \ \ poly space \ \ r 2020 a \ \ extern \ \ lib \ \ win 64 \ \ Microsoft )
#将源代码添加到该项目的可执行文件中。
add _ executable(cmake project cmake project。CPP cmake项目。h mymatrix函数。CPP’)
# TODO:如果需要,添加测试并安装目标。
目标链接库格式如下:
# CMakeList.txt : CMake项目的CMake项目,包含源代码并定义
#此处为项目特定逻辑。
#
cmake_minimum_required(版本3.8)
项目(“CMakeProject”)
包含目录(/usr/local/poly space/r 2020 a/extern/include )
link _ directory(/usr/local/poly space/r 2020 a/runtime/glnxa 64 )
#将源代码添加到该项目的可执行文件中。
add _ executable(cmake project cmake project。CPP cmake项目。h mymatrix函数。CPP’)
# TODO:如果需要,添加测试并安装目标。
目标_链接_库(CMakeProject mwmclmcrrt)注意事项:
在窗子如果使用动态动态链接库库,还需要链接到解放运动文件,而在Linux操作系统操作系统下,只需要链接到因此库就好了。
程序运行
需要有安装矩阵实验室运行时电脑才可以运行上面编译出来的程序。运行时下载地址:
https://ww2.mathworks.cn/products/compiler/matlab-runtime.html
截图如下,需要和安装的矩阵实验室版本对应。
运行时安装之后,会有一个提示:
在目标计算机上,
将以下内容附加到LD _库_路径环境变量中:
/usr/local/MATLAB/MATLAB _ Runtime/v 98/Runtime/Gln xa 64
:/usr/local/MATLAB/MATLAB _ Runtime/v 98/bin/Gln xa 64
:/usr/local/MATLAB/MATLAB _ Runtime/v 98/sys/OS/Gln xa 64
:/usr/local/MATLAB/MATLAB _ Runtime/v 98/extern/bin/Gln xa 64
如果矩阵实验室运行时将用于矩阵实验室产品
服务器或MATLAB Web应用程序服务器,
您不需要修改上述环境变量。我们需要设置一下环境变量,才可以运行。
运行成功输出如下:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。