Matrix interface
Matrix Initialization
初始化底层矩阵数据结构。 这些函数设置矩阵数据结构的 numRows、numCols 和 pData 字段。
/**
@brief 浮点矩阵初始化。
@param[in,out] S 指向浮点矩阵结构的一个实例
@param[in] nRows 矩阵中的行数
@param[in] nColumns 矩阵中的列数
@param[in] pData 指向矩阵数据数组
@return 无
*/
void arm_mat_init_f16 (arm_matrix_instance_f16 *S, uint16_t nRows, uint16_t nColumns, float16_t *pData)
void arm_mat_init_f32 (arm_matrix_instance_f32 *S, uint16_t nRows, uint16_t nColumns, float32_t *pData)
void arm_mat_init_q15 (arm_matrix_instance_q15 *S, uint16_t nRows, uint16_t nColumns, q15_t *pData)
void arm_mat_init_q31 (arm_matrix_instance_q31 *S, uint16_t nRows, uint16_t nColumns, q31_t *pData)
Matrix Addition

/**
@brief Floating-point matrix addition.
@param[in] pSrcA 指向第一个输入矩阵结构
@param[in] pSrcB 指向第二个输入矩阵结构
@param[out] pDst 指向输出矩阵结构
@return execution status
- \ref ARM_MATH_SUCCESS : successful
- \ref ARM_MATH_SIZE_MISMATCH : 矩阵尺寸检查失败
*/
arm_status arm_mat_add_f16 (const arm_matrix_instance_f16 * pSrcA,
const arm_matrix_instance_f16 * pSrcB,
arm_matrix_instance_f16 * pDst);
arm_status arm_mat_add_f32(const arm_matrix_instance_f32 * pSrcA,
const arm_matrix_instance_f32 * pSrcB,
arm_matrix_instance_f32 * pDst);
arm_status arm_mat_add_q15(const arm_matrix_instance_q15 * pSrcA,
const arm_matrix_instance_q15 * pSrcB,
arm_matrix_instance_q15 * pDst);
arm_status arm_mat_add_q31(const arm_matrix_instance_q31 * pSrcA,
const arm_matrix_instance_q31 * pSrcB,
arm_matrix_instance_q31 * pDst);
Matrix Subtraction

/**
@brief 浮点矩阵减法。
@param[in] pSrcA 指向第一个输入矩阵结构
@param[in] pSrcB 指向第二个输入矩阵结构
@param[out] pDst 指向输出矩阵结构
@return 执行状态
- \ref ARM_MATH_SUCCESS : 操作成功
- \ref ARM_MATH_SIZE_MISMATCH : 矩阵大小检查失败
*/
arm_status arm_mat_sub_f16 (const arm_matrix_instance_f16 *pSrcA, const arm_matrix_instance_f16 *pSrcB, arm_matrix_instance_f16 *pDst)
arm_status arm_mat_sub_f32 (const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
arm_status arm_mat_sub_f64 (const arm_matrix_instance_f64 *pSrcA, const arm_matrix_instance_f64 *pSrcB, arm_matrix_instance_f64 *pDst)
arm_status arm_mat_sub_q15 (const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
arm_status arm_mat_sub_q31 (const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Matrix Multiplication

/**
* @brief 浮点矩阵乘法。
* @param[in] *pSrcA 指向第一个输入矩阵结构
* @param[in] *pSrcB 指向第二个输入矩阵结构
* @param[out] *pDst 指向输出矩阵结构
* @return 函数返回任一
* <code>ARM_MATH_SIZE_MISMATCH</code> 或 <code>ARM_MATH_SUCCESS</code> 基于大小检查的结果。
*/
arm_status arm_mat_mult_f16 (const arm_matrix_instance_f16 *pSrcA, const arm_matrix_instance_f16 *pSrcB, arm_matrix_instance_f16 *pDst)
arm_status arm_mat_mult_f32 (const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
arm_status arm_mat_mult_f64 (const arm_matrix_instance_f64 *pSrcA, const arm_matrix_instance_f64 *pSrcB, arm_matrix_instance_f64 *pDst)
arm_status arm_mat_mult_fast_q15 (const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
arm_status arm_mat_mult_fast_q31 (const arm_matrix_instance_q31 *pSrcA, const arm_ma

CMSIS-DSP库提供了一系列的矩阵运算函数,包括初始化、加法、减法、乘法、复数矩阵运算、矩阵转置、逆矩阵、最小二乘拟合等。这些函数适用于浮点和定点数,支持不同精度的数据类型,为嵌入式系统的信号处理提供了高效而灵活的工具。
最低0.47元/天 解锁文章
1489

被折叠的 条评论
为什么被折叠?



