ROS交流群
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
Matlab 动态生成执行语句及构造动态输入变量名
-
对于matlab,自动化benchmark某子功能程序块时需要将一些变量dump出来,怎么将dump出来的变量放在一起调试呢?dump变量是用save,load变量就用load语句,但是保存的变量名是一样的时候就不能同时load了,会发生覆盖。如果每个运行实例中,这个变量的名字都是不同的,就不存在这个问题了。下述代码段将根据数值变量num的值,动态生产A变量副本的名字,并保存A变量副本到不同的文件中,num变量通常是测试实例的编号,这样后续调试时可以快速定位当时运行的benchmark实例
str_temp=sprintf('A_%d=A',num); eval(str_temp); str_temp=sprintf('save(''A_%d.mat'',''A_%d'');',num,num); eval(str_temp);
用sprintf动态生产语句,eval执行语句,就可以了,留意双引号与单引号在matlab中的区别。
利用字符串格式化函数sprintf来构造动态执行语句,对于自动化脚本是一个根本性地技巧。特别是matlab,因为它的很多库函数的输入变量都用字符串表示。比如,下文的代码段,将自动批量load一组dump出来的变量for num=1:666 load(sprintf('A_%d.mat',num)); end
利用这些特性,甚至可以在matlab中直接执行python程序,有机会我将提供一个例子