从零开始学C#,先学c++再学c

  从零开始学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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 设计一个简单的C#控制台应用程序,C#控制台程序,C# 创建控制台应用程序
  • 深入解析windows第8版,深入解析C#(第4版)
  • 数组代码,c# 数组操作,C# 数组实例介绍(图文)
  • 学会C#要多久,学会c#要多久,c#学习之30分钟学会XAML
  • 回溯法01背包问题c,回溯法求解01背包问题伪代码,C#使用回溯法解决背包问题实例分析
  • xml文件转义字符,xml转意字符,C# XML中的转义字符操作
  • winform 进度条控件,c# 进度条使用
  • winform 进度条控件,c# 进度条使用,C#使用winform实现进度条效果
  • winform backgroundworker,c# isbackground
  • winform backgroundworker,c# isbackground,C# BackgroundWorker用法详解
  • lua与c#交互,lua c#
  • lua与c#交互,lua c#,ToLua框架下C#与Lua代码的互调操作
  • linq c#,linq原理 c#
  • linq c#,linq原理 c#,c#中LINQ的基本用法实例
  • java decimal保留两位小数,sql中decimal函数保留2位小数,C#中decimal保留2位有效小数的实现方法
  • 留言与评论(共有 条评论)
       
    验证码: