li2.txt
来自「这是机械工业张德丰《MATLAB与外部程序接口编程》随书源码」· 文本 代码 · 共 90 行
TXT
90 行
/************************testmatcomvc.cpp文件*************************/
#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_data[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_data[i]);
}
printf("\n根据输入的C数组构造的Mm矩阵:\n");
display(v);
//矩阵创建的时候直接赋值
printf("\n* * * * *矩阵创建的时候直接赋值* * * * *\n");
dMm(a);
a=(BR(1,2,3,4,5,semi,6,7,8,9,10,semi));
display(a);
printf("采用colon函数构造的矩阵索引显示矩阵内容:\n");
display(colo(1:10));
exitM();
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?