OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12467|回复: 6

使用DSP库进行矩阵运算,在进行求逆运算时,arm_mat_inverse_f32函数的返回值是0xfb,但计算出的矩阵是对的,比较困扰,求大神解答

[复制链接]

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2014-10-28
在线时间
8 小时
发表于 2015-5-13 01:04:04 | 显示全部楼层 |阅读模式
5金钱
使用DSP库进行矩阵运算,在进行求逆运算时,arm_mat_inverse_f32函数的返回值是0xfb,但计算出的矩阵是对的,比较困扰,求大神解答。
arm_mat_inverse_f32函数正确计算时返回值是0.
代码如下:
 float ax[9]={2000.01025,0,0,0,2000.02051,0,0,0,2000.00012};
 float bx[9]={0};
 u8 status;
 arm_matrix_instance_f32 M_temp1;
 arm_matrix_instance_f32 M_temp2;
 arm_mat_init_f32(&M_temp1,3,3,(float32_t *)ax);
 arm_mat_init_f32(&M_temp2,3,3,(float32_t *)bx);
  status = 1;
 while(status)
 {
   status = arm_mat_inverse_f32(&M_temp1, &M_temp2);
 }
第一次执行函数arm_mat_inverse_f32的时候,矩阵求逆的结果是b[],值是对的。但是返回值status是0xfb。
查了一下函数返回值的意义,但是不清楚具体对应的数值。
问题现象如下,求大神解答。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-5-13 23:19:22 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-8-10
在线时间
0 小时
发表于 2017-8-10 10:22:15 | 显示全部楼层
typedef enum
  {
    ARM_MATH_SUCCESS = 0,                /**< No error */
    ARM_MATH_ARGUMENT_ERROR = -1,        /**< One or more arguments are incorrect */
    ARM_MATH_LENGTH_ERROR = -2,          /**< Length of data buffer is incorrect */
    ARM_MATH_SIZE_MISMATCH = -3,         /**< Size of matrices is not compatible with the operation. */
    ARM_MATH_NANINF = -4,                /**< Not-a-number (NaN) or infinity is generated */
    ARM_MATH_SINGULAR = -5,              /**< Generated by matrix inversion if the input matrix is singular and cannot be inverted. */
    ARM_MATH_TEST_FAILURE = -6           /**< Test Failed  */
  } arm_status;

成功是0的
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-8-10
在线时间
0 小时
发表于 2017-8-10 10:25:57 | 显示全部楼层
是负数的表示方式,应该是-5
回复

使用道具 举报

0

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-12-25
在线时间
20 小时
发表于 2018-1-17 08:42:06 | 显示全部楼层
和楼主一样,第一次执行函数arm_mat_inverse_f32的时候,矩阵求逆的返回值是
ARM_MATH_SINGULAR = -5,              /**< Generated by matrix inversion if the input matrix is singular and cannot be inverted. */
,但是第二次再求逆就返回
ARM_MATH_SUCCESS = 0,                /**< No error */
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-1-19 02:34:46 | 显示全部楼层
帮顶
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-10-5
在线时间
4 小时
发表于 2018-2-8 21:05:53 | 显示全部楼层
本帖最后由 dlx6969 于 2018-2-8 21:09 编辑

我的第一次返回01,再运行返回0,但结果对,F767。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 05:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表