C++ MEX Functions 的代码如下

#include "mex.hpp"
#include "mexAdapter.hpp"class MexFunction : public matlab::mex::Function {
public:void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) {// Function implementation...}
};

我们需要在ArgumentList对象上进行操作,其中matlab::data::Array 对象包含在ArgumentList对象里面,可以用[]类似为数组获取Array对象。

关于如何创建outputs对象,代码如下:

class MexFunction : public matlab::mex::Function {
public:void operator()(ArgumentList outputs, ArgumentList inputs) {ArrayFactory factory;ArrayDimensions dimen = { 2,2 }; //每维的大小TypedArray<double> doublerray = factory.createArray<double>(dimen);doublerray[0][0] = 1;doublerray[0][1] = 2;doublerray[1][0] = 3;doublerray[1][1] = 4;outputs[0] = doublerray;}
};

上述代码中在matlab中返回了一个为2*2大小的矩阵,值为{1,2;3,4}

ArrayFactory用来创建matlab::data::Array对象(工厂模式);https://ww2.mathworks.cn/help/matlab/apiref/matlab.data.arrayfactory.html#bvn7dve-1

ArrayDimensions 是Array对象的维度,类型是:using ArrayDimensions = std::vector<size_t>;

TypedArray 是matlab带泛型的Array https://ww2.mathworks.cn/help/matlab/apiref/matlab.data.typedarray.html?searchHighlight=TypedArray&s_tid=doc_srchtitle

matlab::mex::ArgumentList outputs的创建相关推荐

  1. MATLAB二维数组的创建与元素提取

    1.二维数组(矩阵)的创建 1.1直接输入法 从键盘直接输入元素.输入规则如下: 矩阵元素必须在方括号内: 同行元素之间用空格或逗号隔开: 行与行之间用分号或回车符隔开: 元素可以是数值.变量.表达式 ...

  2. matlab二维数组的创建及其变换

    很基础的问题,但很容易忘记.. 1.MATLAB中,一般使用方括号([]),逗号(,),分号(:)与空格来创建二维数组.空数组是一种非常特殊的数组,没有任何元素.创建一个空数组:只要把一个方括号复制给 ...

  3. Matlab利用已知方阵创建斜对角矩阵

    Matlab利用已知方阵创建斜对角矩阵 A=[ 1 2 3 4 ;7 8 9 10 ;13 14 15 16 ;19 20 21 22 ]; 对于小矩阵,直接利用for循环解决 n = size(A, ...

  4. Matlab:基于Matlab实现人工智能算法应用的简介(BP神经网络算法NN、SOFM神经网络)、案例应用(基于Matlab的GUI的方式创建/训练/预测神经网络)之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(BP神经网络算法NN.SOFM神经网络).案例应用(基于Matlab的GUI的方式创建/训练/预测神经网络)之详细攻略 目录

  5. matlab建立mex,Visual Studio创建Matlab mex(dll)函数

    7). 然后打开project -> test_matlab_3 properties -> C++ -> Code Generation -> Runtime Library ...

  6. Matlab MEX

    如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数: double add(double x, double y) { return x + y; } 现在我想要在Matlab中使用它,比 ...

  7. Matlab与线性代数 -- 稀疏矩阵的创建

    本文详细介绍了在Matlab中创建稀疏矩阵的三种方法.

  8. matlab编译错误怎么查找,matlab - Matlab mex文件编译错误-“未启用SSE2指令集” - 堆栈内存溢出...

    在Matlab中编译mex文件的工具箱时,出现以下错误: In file included from /home/josh/Desktop/Project/code/toolbox/channels/ ...

  9. matlab mex路径,使用matlab进行mex编译时的路径问题mexopts

    matlab和vs 进行混合编程时总需要使用matlab编译mexFunction.cpp文件.这些文件免不了使用include下的*.h和lib下的*.lib文件.举 matlab和vs 进行混合编 ...

最新文章

  1. 【转】关于编译链接——gcc/g++
  2. python布尔类型运算_Python中布尔类型
  3. Linux---- Linux ---安装软件之 srpm ,rpm
  4. NTU 课程 ERIC(5) 对社会的责任
  5. 4.2.2 磁盘调度算法
  6. Java数组(3)--二维(多维)数组
  7. python--pdb
  8. 03 Python爬虫之Requests网络爬取实战
  9. 深入理解javascript中的立即执行函数(function(){…})() 1
  10. 网络管理员掌握的学习方法
  11. 2018年 五月笔记
  12. 深度学习和大数据之间,主要是什么关系?
  13. 未来的不确定性到底是好是坏
  14. Windows畸形文件夹
  15. LeetCode—494. 目标和(Target Sum)——分析及代码(Java)
  16. 王者荣耀测试自己本命英雄软件,王者荣耀中谁是你的本命英雄测试地址 趣推测试王者荣耀中谁是你的本命英雄...
  17. RPA流程自动化有什么优点?如何使用RPA机器人自动化养号?​
  18. 爱签电子合同联合小五科技,解锁新媒体行业电子合同数字化变局
  19. python(pycharm)环境加速安装第三方库
  20. [C++]学习笔记——模板

热门文章

  1. python之路-双下方法
  2. 面向对象——案例练习(3)判断两个立方体是否相等
  3. Linux环境下安装jenkins
  4. Android学习之图片压缩,压缩程度高且失真度小
  5. ReflectionLabel(倒影控件)
  6. Server.UrlEncode、HttpUtility.UrlDecode不同编码
  7. HarmonyOS之数据管理·轻量级偏好数据库的应用
  8. 蚂蚁集团董事调整:黄益平等五人新增,彭蕾等三人退出
  9. 104. Maximum Depth of Binary Tree 二叉树的最大深度
  10. 做项目开发你必须得掌握的知识:设计模式