📄 testmatcomvc.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 + -