当前位置: 首页 > 工具软件 > f32c > 使用案例 >

CMSIS-DSP的arm_mat_init_f32矩阵求逆函数结果不对问题解决方法

鲍健柏
2023-12-01

CMSIS-DSP库是ARM提供的一个用于STM32工程实现矩阵计算的C语言函数库。

arm_mat_init_f32函数求矩阵的逆会出现问题的原因与库函数中生成矩阵的方式有关。矩阵的生成并不会申请新的内存空间,arm_mat_init_f32函数只是将已经存在的一个矩阵内存通过库中定义的一个struct结构体连接起来,结构体中有一个指向矩阵内存空间的指针,只是一个指针而已。

所以调用arm_mat_init_f32的结果就是对源矩阵进行运算,运算的结果存储在另一个目的矩阵的内存空间中。因为这样,所以需要传入的矩阵必须都已经是提前申请内存的矩阵。

一句话,该矩阵库函数只负责矩阵运算,不负责内存的申请和释放。

参考官方的讨论过程:https://community.arm.com/developer/tools-software/tools/f/keil-forum/32946/cmsis-dsp-matrix-inverse-problem#:~:text=The%20function%20arm_mat_inverse_f32%20%28%29%20overwrites%20the%20matrix%20data,inversion.%20This%20test%20uses%20the%20data%20mentioned%20above.

 类似资料: