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

📄 testmatcomvc.cpp

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

#include "stdafx.h"
#include "stdio.h"
#include "matlib.h"


int main(int argc, char* argv[])
{
	initM(MATCOM_VERSION);
	
	//矩阵的索引
	printf("*****Mm矩阵索引操作*****\n");
	dMm(x);
	x=magic(3);
	printf("x = magic(3):\n");
	display(x);
	x.r()=-x.r();
	x.r(2)+=1;
	x.r(3,1)*=x.r(3,1);
	printf("通过索引改变后的x:\n");
	display(x);

	//获取矩阵数据的指针
	printf("\n*****获取矩阵数据的指针*****\n");
	dMm(cdata);	
	cdata=czeros(1,4,4);
	cdata(1)=1+3*i;
	cdata(6)=6+4*i;
	cdata(11)=2+9*i;
	cdata(5)=1+i;
	cdata(12)=5+i;
	cdata(16)=i;
	printf("用display(data)显示数据:\n");
	display(cdata);
	double * pr, * pi;
	pr=cdata.addr();
	pi=cdata.addi();
	int i=0,j=0;
	printf("获取data数据指针后显示:\n");
	for(i=0;i<4;i++)
	{
		printf("\n");
		for(j=0;j<4;j++)
		{
			if(pi[j*4+i]>0.0000001)
			{
				printf("%1.0f+%1.0fi   ",pr[j*4+i],pi[j*4+i]);
			}
			else
			{
				printf("%4.0f   ",pr[j*4+i]);
			}
		}
	}
	printf("\n");



	//直接用double型数初始化数组
	//由于Mm矩阵和C/C++数组的存储顺序不一致,因而需要作相应的转换
	printf("\n*****直接用double型数初始化数组*****\n");
	double v_data[10]={1,2,3,4,5,6,7,8,9,10};
	dMm(v);
	M_VECTOR(v,v_data);	
	v=reshape(v,5,2);	
	v=transpose(v);
	printf("输入的C数组:\n");
	for(i=0;i<10;i++)
	{
		printf("%2.0f ",v_data[i]);
	}
	printf("\n根据输入的C数组构造的Mm矩阵:\n");
	display(v);

    //通过数据拷贝直接创建矩阵
	printf("\n*****通过数据拷贝直接创建矩阵*****\n");
	double v_data1[10]={10,9,8,7,6,5,4,3,2,1};
	memcpy(v.addr(),v_data1,10*sizeof(double));	
	v=reshape(v,5,2);
	v=transpose(v);
	printf("输入的C数组:\n");
	for(i=0;i<10;i++)
	{
		printf("%2.0f ",v_data1[i]);
	}
	printf("\n根据输入的C数组构造的Mm矩阵:\n");
	display(v);

	//矩阵创建的时候直接赋值
	printf("*****矩阵创建的时候直接赋值*****\n");
	dMm (a);
	a=(BR(1),2,3,4,5,semi,6,7,8,9,10,semi);
	display(a);
	printf("采用colon函数构造的矩阵索引显示矩阵内容:\n");
	display(colon(1,10));

	exitM();
	return 0;
}

⌨️ 快捷键说明

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