arm_matrix_instance_f32 S;
arm_matrix_instance_f32 S1;
arm_matrix_instance_f32 S2;
uint16_t nRows=5;
uint16_t nColumns=5;
static void dsp_test1(void)
{
float32_t pData[25]={17,24,1,8,15,
23,5,7,14,16,
4,6,13,20,22,
10,12,19,21,3,
11,18,25,2,9};
float32_t pData1[25]={3,3,3,3,3,
3,3,3,3,3,
3,3,3,3,3,
3,3,3,3,3,
3,3,3,3,3};
float32_t pData2[25]={0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0};
u8 i=0;
arm_mat_init_f32(&S,nRows,nColumns,pData);
arm_mat_init_f32(&S1,nRows,nColumns,pData1);
arm_mat_init_f32(&S2,nRows,nColumns,pData2);
printf("矩阵A=\r\n");
for(i=0;i<25;i++)
{
printf("%f ",S.pData[i]);
if(i%5==4)
{
printf("\r\n");
}
}
printf("\r\n");
printf("矩阵B=\r\n");
for(i=0;i<25;i++)
{
printf("%f ",S1.pData[i]);
if(i%5==4)
{
printf("\r\n");
}
}
arm_mat_add_f32(&S,&S1,&S2);
printf("\r\n");
printf("矩阵A+B=\r\n");
for(i=0;i<25;i++)
{
printf("%f ",S2.pData[i]);
if(i%5==4)
{
printf("\r\n");
}
}
arm_mat_mult_f32(&S,&S1,&S2);
printf("\r\n");
printf("矩阵A*B=\r\n");
for(i=0;i<25;i++)
{
printf("%f ",S2.pData[i]);
if(i%5==4)
{
printf("\r\n");
}
}
arm_mat_inverse_f32(&S,&S2);
printf("\r\n");
printf("矩阵A的逆矩阵=\r\n");
for(i=0;i<25;i++)
{
printf("%f ",S2.pData[i]);
if(i%5==4)
{
printf("\r\n");
}
}
}
static void dsp_test2(void)
{
u8 i=0;
float32_t pData[25]={17,24,1,8,15,
23,5,7,14,16,
4,6,13,20,22,
10,12,19,21,3,
11,18,25,2,9};
float32_t pData1[25]={3,3,3,3,3,
3,3,3,3,3,
3,3,3,3,3,
3,3,3,3,3,
3,3,3,3,3};
float32_t pData2[25]={0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0};
arm_mat_init_f32(&S,nRows,nColumns,pData);
arm_mat_init_f32(&S1,nRows,nColumns,pData1);
arm_mat_init_f32(&S2,nRows,nColumns,pData2);
arm_mat_scale_f32(&S,0.1f,&S2);
printf("\r\n");
printf("矩阵A*0.1=\r\n");
for(i=0;i<25;i++)
{
printf("%f ",S2.pData[i]);
if(i%5==4)
{
printf("\r\n");
}
}
arm_mat_sub_f32(&S,&S1,&S2);
printf("\r\n");
printf("矩阵A-B=\r\n");
for(i=0;i<25;i++)
{
printf("%f ",S2.pData[i]);
if(i%5==4)
{
printf("\r\n");
}
}
arm_mat_trans_f32(&S,&S2);
printf("\r\n");
printf("矩阵A的转置=\r\n");
for(i=0;i<25;i++)
{
printf("%f ",S2.pData[i]);
if(i%5==4)
{
printf("\r\n");
}
}
}
void dsp_test(void)
{
dsp_test1();
dsp_test2();
}