文档章节

mwArray

曾劲松
 曾劲松
发布于 2016/08/10 09:06
字数 487
阅读 22
收藏 0
点赞 0
评论 0

在vc中调用MATLAB产生的组建时,需要将vc中的参数转换成mwArray格式。

对mwArray赋值,主要包括矩阵赋值和字符串赋值。

一.矩阵赋值

<1>mwArray 定义矩阵变量

              mwArray  A(rows, cols, type)

            参数说明:

               A       : 变量名

                rows:行数

               col   :列数

               type :数t据类型

整体含义是:定义矩阵A,行数为:rows,列数为:cols,类型为:type

typedef enum  
{  
    mxUNKNOWN_CLASS = 0, //未知类型  
    mxCELL_CLASS, //细胞类型  
    mxSTRUCT_CLASS, //结构类型  
    mxLOGICAL_CLASS, //布尔类型  
    mxCHAR_CLASS,  //字符串类型  
    mxVOID_CLASS,  //void类型  
    mxDOUBLE_CLASS,   
    mxSINGLE_CLASS, //单精度浮点数  
    mxINT8_CLASS, //  
    mxUINT8_CLASS,  
    mxINT16_CLASS,  
    mxUINT16_CLASS,  
    mxINT32_CLASS,  
    mxUINT32_CLASS,  
    mxINT64_CLASS,  
    mxUINT64_CLASS,  
    mxFUNCTION_CLASS, //函数类型  
    mxOPAQUE_CLASS, //  
    mxOBJECT_CLASS  //对象类型  
}  

 

 

注: 如果参数不是矩阵,只是一个数,令 rows=1,cols=1即可。

<2>矩阵赋初值:

int a[6] = {1,2,3,4,5,6}  
mwArray A(2,3,mxINT32_CLASS);    
A.SetData(a,6); //第二个参数为要设置的数的个数,大小可设为rows*cols  


注:该过程相当于把1*6的矩阵,转化为2*3的矩阵,matlab转化顺序是,先排第一列,由上到下为a[0] a[1],然后排第二列,由上到下为a[2] a[3],即转化后的A为:

1     3      5

2     4      6

如果要使A为:

1      2     3

4      5     6

需这样赋值:

int a[6] = {1,2,3,4,5,6}  
mwArray A(3,2,mxINT32_CLASS);  //修改此处:行列数互换  
A.SetData(a,6); //第二个参数为要设置的数的个数,大小可设为rows*cols  

此时生成的A为:

1      4

2      5

3      6

该矩阵转置之后,既可以达到所需形式,转置过程可以在matlab的.m文件中添加,先修改.m,然后在生成dll、lib、h文件。

尤其是,在图像处理时,如果传递的矩阵为图像数据矩阵,要采用后一种方法赋值,否则,图像会严重变形失真。

二、字符串赋值

char str[5] = "abcd";  
//或 CString str = "abcd"  
mwArray mwA(str);  


该过程比较简单。

© 著作权归作者所有

共有 人打赏支持
曾劲松
粉丝 4
博文 198
码字总数 141022
作品 0
武汉
mwArray类说明

mwArray类说明 - [Matlab VC环境下编程],有需要的朋友可以参考下。 mwArray是一个C/C++类的类型,而mxArray是C语言的类的类型 1、创建mwArray阵列 mwArray() 创建空的Matlab阵列,类型为mxD...

SVD
2016/03/27
33
1
VC调用matlab函数mclcppMlfFeval重复定义

问题背景: 用mcc -W cpplib:libname -T link:lib -v matlabmfile.m 编译.m文件,生成vc可用的动态连接库和.h头文件,相关数据.c文件,和一个.cpp文件(mtocpp.cpp),该.cpp文件中.h文件提供...

长平狐
2012/10/08
183
0
MATLAB与C#混合编程

Matlab 数据类型与.NET 数据类型转换 by-GalaxyGap 2012-12-11 用 Matlab 写算法还是有很多优势的,具体表现在以下几个方面:1)Matlab 的内部函数是用 C 语言写的,虽然 M 语言是解释性语言,...

SVD
2016/04/06
532
6
c++调用matlab生成的Dll动态连接库

点击打开链接 http://download.csdn.net/detail/nuptboyzhb/4228429 c++调用matlab生成的Dll动态连接库 实验平台: matlab 7.0(R2009a) VC++6.0 思路: 1. 设置matlab的编译器,使用外部的V...

长平狐
2012/10/08
2.4K
0
产生的DLL (VS2005, MATLAB7.5, mwArray)

程序中使用MATLAB编译产生的DLL (VS2005, MATLAB7.5, mwArray) 最近有几个帖子都在讨论有关在C++程序中使用MATLAB编译产生的动态链接库DLL。本 来想用原来帖子中给出的m代码作为例子,无奈...

云栖希望。
2017/12/04
0
0
Matlab+VC混合编程--mclmcr.h等

刚开始学习用VC++调用matlab生成的DLL,找了网上一些资料,难以找到vs2008与MATLAB2009b版本的,按照以往版本做的总是有很多错误。经过两天努力,终于调试成功,这里将经验总结一下,以供有需...

长平狐
2012/10/08
1K
0
Matlab与C#混编时net framework的不兼容问

Matlab中的MWArray是v2.0时编译的,所以在最新的VS2010中采用4.0时会出现error,最简单的方法是降低version,但是这会让我们觉得很不爽。 出错时提示我们修改configuration,其实是修改app.c...

木木情深
2012/12/06
0
0
转]MATLAB 与 C 语言的接口

MATLAB 到 C 语言程序的转换可以由两种途径完成,其一是 MATLAB 自己提供的 C 语言翻译程序 mcc, 另一种是原第 3 方公司 MathTools 开发的 MATCOM。后者出现较早,功能远比 MATLAB 自己的翻译...

云栖希望。
2017/12/04
0
0
Matlab和C#混合编程的小问题

C#和matlab混合编程 我设计了一个窗体,有一个按钮和一个listbox,想要实现的功能是按一下按钮,程序调用matlab来解方程组,然后把得到的值显示在listbox上 现在出现的问题是: 下面是我的C...

Dancy的纸飞机
2013/09/23
281
0
matlab混合编程向导

matlab混合编程向导(vc,vb,.net...) 一.matlab与vc混编 1.通过mcc将matlab的m文件转化为cpp,c文件或dll供vc调用: 这方面的实现推荐精华区Zosco和ljw总结的方法(x-6-1-4-3-1和2) vc的设置请参...

长平狐
2012/10/08
256
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CORS 跨域实践

本文首发于个人微信公众号《andyqian》,期待你的关注~ 前言 系统通常都是由单体应用逐渐演化而来,演化成为前后端分离的分布式应用。在享受分布式系统带来的诸多好处之时,随之而来的也有不...

andyqian
7分钟前
6
0
开源 java CMS - FreeCMS2.8 会员管理

项目地址:http://www.freeteam.cn/ 会员组管理 会员管理 会员管理 从左侧管理菜单点击会员管理进入。 添加会员 在会员列表下方点击“添加”按钮。 填写相关属性后点击“保存”按钮即可。 编...

freeteam
8分钟前
0
0
bboss升级至 v5.0.6.8版本,改善对Elasticsearch SQL 的支持

v5.0.6.8功能改进如下: (1)持久层支持支持Elasticsearch SQL,使用参考文档:玩转Elasticsearch SQL功能 (2)解决持久层/elasticsearch模板变量解析多层级不起作用问题 (3)完善国际化功能 (4...

linux-tao
9分钟前
0
0
扫码二维码跳转到某个网站

添加maven依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.0.0</version></dependency><dependency><groupId>com.goog......

gaomq
16分钟前
0
0
Windows平台下搭建Git服务器的图文教程

Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己...

MKChan
21分钟前
0
0
告警系统主脚本&告警系统配置文件&告警系统监控项目

20.20 告警系统主脚本 准备工作 定义监控系统的各个目录,然后再去定义主脚本,因为是分布式的,所以需要每一台机器都需要定义,事先创建好各个脚本和各个目录,随后脚本直接拷贝过去即可,然...

影夜Linux
22分钟前
0
0
谈谈神秘的ES6——(一)初识ECMAScript

谈谈神秘的ES6——(一)初识ECMAScript 在《零基础入门JavaScript》我们就说过,ECMAScript是JavaScript的核心,是JavaScript语法和语义的解释器,同时也是一个标准。而ECMAScript标准其实也...

JandenMa
今天
1
0
第16章 Tomcat配置

16.1 Tomcat介绍 ####Tomcat介绍 LNMP架构针对的开发语言是PHP语言,php 是一门开发web程序非常流行的语言,早些年流行的是asp,在Windows平台上运行的一种编程语言,但安全性差,就网站开发...

Linux学习笔记
今天
1
0
流利阅读笔记29-20180718待学习

高等教育未来成谜,前景到底在哪里? Ray 2018-07-18 1.今日导读 在这个信息爆炸的年代,获取知识是一件越来越容易的事情。人们曾经认为,如此的时代进步会给高等教育带来众多便利。但事实的...

aibinxiao
今天
12
0
OSChina 周三乱弹 —— 你被我从 osc 老婆们名单中踢出了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小鱼丁:分享五月天的单曲《后来的我们 (电影《后来的我们》片名曲)》: 《后来的我们 (电影《后来的我们》片名曲)》- 五月天 手机党少年们想...

小小编辑
今天
810
20

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部