文档章节

mwArray

曾劲松
 曾劲松
发布于 2016/08/10 09:06
字数 487
阅读 26
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

记Structured Streaming 2.3.1的OOM排查过程

记Structured Streaming 2.3.1的OOM排查过程 缘起 最近在使用Structured Streaming开发一套自助配置SQL的来生成流式作业的平台,在测试的过程中发现有些作业长时间运行后会有Executor端的OOM...

纳兰清风
3分钟前
0
0
通过 websocket 连接 openfire

通过 websocket 连接 openfire 一、简介 老版本是需要安装websocket插件的。之前版本就不说了。 二、 引入XML与JSON互转的js <script src="lib/XML/ObjTree.js"></script><script src="lib......

lwenhao
7分钟前
0
0
MicropPython的学习,如何从0到1?

是Java还是C++ ? 是Go还是Python? 你为你最爱或者最熟悉的编程语言打Call了吗? Python在国外是一门非常热门的编程语言,近些年在国内也被发掘与追捧, Python的开放、简洁、黏合正符合了现发...

bodasisiter
8分钟前
0
0
Django框架17: Celery的使用

Celery介绍 1.什么是Celery Celery是一个python模块,它在官网的定义:Celery is asynchronous task queue/job based on distributed message passing. It is focused on real-time operatio......

代码打碟手
14分钟前
0
0
poi的excel解析工具类

import org.apache.commons.lang.StringUtils;import org.apache.commons.lang.time.DateFormatUtils;import org.apache.commons.lang.time.DateUtils;import org.apache.poi.hssf.use......

Sheav
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部