⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mwdatachange.cpp

📁 《精通matlab与c++混合编程》的光盘内容
💻 CPP
字号:
// mwDataChange.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include "matlab.hpp"
#include "mex.h"
#include "matrix.h"


int main(int argc, char* argv[])
{
	/*数组构建*/
	static double data[]={1,3,5,7,9,11};
	double * pdata=NULL;
	mwArray A,B,C,D,E,F;	
	mxArray * mxD=NULL;
	A = 5;
	B = "Hello World!";
	C = mwArray(2,3,data);
	mxD = mxCreateDoubleMatrix(2,3,mxREAL);
	pdata = mxGetPr(mxD);
	for(int i=0;i<6;i++)
	{
		pdata[i]=i;
	}
	D = mxD;

	E = ramp(1,10);	
	F = E(8);

	/*数组的大小获取*/
	mwArray m,n;
	int m1,n1;
	size(mwVarargout(m,n),C);/*方式1*/
	m1=size(&n1,C);/*方式2,只适用于二维的情况*/
	
	int dims;
	int ndims[2];
	dims=C.Size();
	C.Size(ndims);/*方式3*/

	/*mwArray 布尔型变量转换为 c/c++布尔型变量*/
	mwArray isCReal= isreal(C);

	/*C变量数据指针的获取*/
	mxArray * pCMxData = C.GetData();
	double * pCData = mxGetPr(pCMxData);
	

	cout <<"构造1x1的数值阵列:\n" <<A <<endl;
	cout <<"构造字符阵列:\n" <<B <<endl;
	cout <<"构造2x3的数值阵列:\n" <<C <<endl;
	cout <<"通过mxArray构造2x3的数值阵列:\n" <<D <<endl;
	cout <<"通过mwSubArray构造数值阵列:\n" <<F <<endl;
	cout <<"数组C的维数为:"<<dims<<endl;
	cout <<"方法1:\n" <<"行:"<<m<<"\n"<<"列:"<<n<<"\n"<<endl;		
	cout <<"方法2:\n" <<"行:"<<m1<<"\n"<<"列:"<<n1<<"\n"<<endl;	
	cout <<"方法3:\n" <<"行:"<<ndims[0]<<"\n"<<"列:"<<ndims[1]<<"\n"<<endl;
	cout <<"C数组的元素个数为:"<<C.EltCount()<<"\n"<<endl;
	if(tobool(isCReal))
	{
		cout << "C数组的数组类型为实数!" <<endl;
	}
	else
	{
		cout << "C数组的数组类型为复数!" <<endl;
	}

	cout <<"阵列C的内容如下:\n"<<endl;
	for(i=0;i<C.EltCount();i++)
	{
		cout <<pCData[i]<<"   ";
	}
	cout<<endl;
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -