www.gusucode.com > MATLAB2008应用程序接口编程技术源码程序 > MATLAB2008应用程序接口编程技术源码程序/code/第8章/8.7/exam2.cpp

    /* 头文件包含 */
#include "mex.h"
#include <stdlib.h>
#include "MATLAB.hpp" 
#include <string.h>

static double data0[3][3] = {{2,6,4},{1,3,4},{3,5,6}};
static double data1[3] = {5,3,7};
double data2[3];

void main()
{
	int i,j;

	/* 使用mxArray构造函数由数组data1来初始化阵列b*/
    mxArray b(3,1,data1);

	/* 定义二维阵列A */
	mxArray(3,3);

	/* 使用循环语句对阵列A赋值 */
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			A(i+1,j+1) = data0[i][j];
		}
	}

	/* 调用数学函数来求解线性方程 */
	mxArray x = mldivide(A,b);

	/* GetData为类mxArray的成员函数,用于获取mxArray类型的真列数据 */
    double *real_data = mxGetPr(x.GetData());

	/* 将解得的阵列复制给C++语言的数组,并输出 */
	for(i=0;i<3;i++)
	{
		data2[i] = *(real_data+i);
		cout<<data2[i]<<"\n";
	}
	return;
}