matlab mwarray,C语言与matlab混合编程中mwArray的Get函数的简单用法解释

news/2025/2/26 19:54:47

网上的通用示例:

double data[4] = {1.0, 2.0, 3.0, 4.0};

double x;

mwArray a(2, 2, mxDOUBLE_CLASS);

a.SetData(data, 4);

x = a.Get(1,1); // x = 1.0

x = a.Get(2, 1, 2); // x = 3.0

x = a.Get(2, 2, 2); // x = 4.0

这个示例我就看得很蛋疼,八成是官方示例(笑)。

解释一下,用过matlab的同学都知道matlab默认列优先,列优先是什么概念呢?就是数据都是按照列储存,一列一列在内存上存储的,这一点C语言也一样(具体博主我也忘了,记得是C语言定义二维数组的时候,长和宽必须写一个,另一个可以不写来着,这里我忘了,等我有空查到再补上这里)。

也就是说数据是按列存入mwArray结构体,也就是说数据在内存里是存成这样的:

803a95758a2dfc4b591b056723bc79f8.png

而我们使用时因为你指定了mwArray a(2, 2, mxDOUBLE_CLASS);嘛,你就可以认为数据就存成了这样:

b519b5fcc7ceac249a005937b0e9049e.png

这样在使用时就容易理解了不少(说得和真的似的,笑)

再看程序:

x = a.Get(2, 2, 2); // x = 4.0

实际上Get这个函数我真没看懂,他第一个indice参数是什么意思?指数?嘛,它不重要,真的不重要,我换成了1,2它都好使……我也很绝望,但是懒得去看英文文档了,但我推测……嗯……推测可以是页数,毕竟万一是三维矩阵呢……

后两个就是索引,你看2行2列是不是4,你再看看1,1列是不是1,但是要注意,2行1列你写成a.Get(2, 1)它真的不是2,这是因为重载函数默认第一个值是那个不明所以的indice,这就很难受。

博主之所以写这篇博文是因为没有找到Get函数用法,其实很简单自己试试就可以了,但是这东西都是站在巨人肩膀上,能为后来人节省一点时间是一点时间,一寸光阴一寸金嘛。


http://www.niftyadmin.cn/n/4072833.html

相关文章

软件外包的五个核心竞争力

国际金融危机的到来,使国内的软件外包企业是几家欢乐几家愁。为什么面对相同的下行市场,各企业的表现却不同呢?这就不得不谈谈企业的核心竞争力。只有搞清什么是自己的核心竞争力,才能从容面对市场风云变幻,使企业走上…

cordova 爬坑指南

cordova 爬坑指南 环境配置 先安装java,配置环境变量(百度一下)安装sdk(建议安装android studio),这里需要要翻墙,或着用站长工具,修改android studio下载地址对应的ip,修…

php提交多个数据库,php – Magento单次提交中的多个数据库事务

我知道如何在zend框架中做到这一点$db->beginTransaction();try {$db->query(...);$db->query(...);$db->query(...);...$db->commit();} catch (Exception $e) {$db->rollBack();}但是我想用magento模型来做这件事$db->beginTransaction();try {$modelOn…

.net 面试题系列文章五(附答案)

18.请叙述属性与索引器的区别。 属性 索引器 通过名称标识。 通过签名标识。 通过简单名称或成员访问来访问。 通过元素访问来访问。 可以为静态成员或实例成员。 必须为实例成员。 属性的 get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形参表。 属性的 set 访问…

Scrapy 框架 中间件 代理IP 提高效率

中间件 拦截请求跟响应进行ua(User-Agent ) 伪装 代理 IP中间件位置: 引擎 和下载器 中间 的中间件 ( 下载中间件)引擎 跟 spider 中间 的中间件 ( 爬虫中间件)(不常用)下载中间件中的ua 伪装 下载中间件可以拦截调度器发送给下载器的请求。可以将请求的相应信息进行篡改&#…

计算农历的函数

没仔细看过,网上搜来的代码:-------------------------------------------------------------------------------- [本篇全文] [回复本文] [本篇作者: top ] [本篇人气: 10] 发信人: top (英语六级&&PHP), 信区: Programming 标 题: 阴阳历算法 发信站:…

matlab数学实验分形,数学实验分形实例

《数学实验分形实例》由会员分享,可在线阅读,更多相关《数学实验分形实例(11页珍藏版)》请在人人文库网上搜索。1、数学实验报告学院: 班级: 学号: 姓名: 完成日期: 实验二 分形(一)练习题1一实…

python var函数,Python Pandas Series.var用法及代码示例

Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统。 Pandas是其中的一种,使导入和分析数据更加容易。Pandas 系列是带有轴标签的一维ndarray。标签不必是唯一的,但必须是可哈希的类型。该对象同时…