matlab subs 函数计算太慢

来源

计算机器人 transformation matrix 相关内容时,对于关节角度进行离散,循环计算很慢,随着角度划分越来越细,怎么提高速度是一个问题。

最优解决方法

fun_handle = matlabFunction(T_t2b_RPY_tmp);

T_t2b_RPY_tmp是 transformation matrix, 其中使用 符号类型 syms 关节角度,直接把它转换成函数。注意查看函数变量顺序

fun_handle =

  function_handle with value:

    @(theta_P,theta_R,theta_Y)reshape([cos(theta_Y).*sin(theta_R)+cos(theta_R).*sin...

然后直接使用循环进行计算


tic
fun_handle = matlabFunction(T_t2b_RPY_tmp);
AAA = zeros(4,4,prod(num_point));
p = 0;
for i = Roll
    for j = Pitch
        for k = Yaw
            p = p + 1;
            AAA(:,:,p) = fun_handle(j,i,k);
        end
    end
end
toc

使用符号计算 时间差别 上千倍

tic
BBB = zeros(4,4,prod(num_point));
p = 0;
for i = Roll
    for j = Pitch
        for k = Yaw
            p = p + 1;
            BBB(:,:,p) = double(subs(T_t2b_RPY_tmp, {theta_R theta_P theta_Y}, {i j k}));
        end
    end
end
toc

问题:两个计算结果有差别

把两者结果作差,D1 = AAA-BBB;, 可以看到结果不一样,不过都小于 10^-4.

val(:,:,1) =

   1.0e-15 *

         0    0.0000         0         0
         0   -0.0612         0         0
    0.0612         0    0.0000    0.6123
         0         0         0         0


val(:,:,2) =

   1.0e-04 *

   -0.2846    0.0000    0.2190    0.1895
   -0.2190   -0.0000   -0.2846    0.1537
    0.0000         0    0.0000    0.0000
         0         0         0         0


val(:,:,3) =

   1.0e-04 *

   -0.1169    0.0000    0.4760   -0.2399
   -0.4760   -0.0000   -0.1169   -0.1691
    0.0000         0    0.0000    0.0000
         0         0         0         0
isequal(round(AAA,5), round(BBB,5)) 对比精度

这个是由于两者计算精度不一样,具体原理没有搞清楚,详情参考

相关推荐

  1. matlab subs 函数计算

    2024-01-09 10:38:01       42 阅读
  2. npm install ?解决方法

    2024-01-09 10:38:01       34 阅读
  3. npm install ?解决方法

    2024-01-09 10:38:01       31 阅读
  4. npm install ?解决方法

    2024-01-09 10:38:01       12 阅读
  5. Github访问解决方案

    2024-01-09 10:38:01       9 阅读
  6. npm install ?解决方法

    2024-01-09 10:38:01       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-09 10:38:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-09 10:38:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-09 10:38:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-09 10:38:01       18 阅读

热门阅读

  1. Serverless架构的理论基础和发展历程

    2024-01-09 10:38:01       35 阅读
  2. 【flink番外篇】14、Flink异步I/O访问外部数据示例

    2024-01-09 10:38:01       40 阅读
  3. Docker的基本概念和优势

    2024-01-09 10:38:01       34 阅读
  4. OpenCV 配置选项参考(一)

    2024-01-09 10:38:01       46 阅读
  5. 站长工具之PHP单文件实现IP归属地批量查询

    2024-01-09 10:38:01       31 阅读
  6. Kafka内外网访问

    2024-01-09 10:38:01       39 阅读
  7. 文本分析之词云图的绘制

    2024-01-09 10:38:01       34 阅读
  8. 编程语言的新趋势

    2024-01-09 10:38:01       38 阅读
  9. Python数据可视化交互式HvPlot库

    2024-01-09 10:38:01       34 阅读