matlab自动化脚本对于搞飞控有啥用?
Posted 欣飞鸽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab自动化脚本对于搞飞控有啥用?相关的知识,希望对你有一定的参考价值。
脚本介绍 & 实践操作
脚本介绍
1
自动化脚本的作用
脚本就是个小程序,通过执行该脚本可以将繁琐的有规律的人为操作,通过电脑程序自动执行,减少重复工作。
2
举个栗子
对于具有固定格式的通信协议如mavlink,通过自动化脚本,我们可以将基于通信协议的xml文件,生成c/c++的通信协议代码,如MAVLink Generator 脚本工具:
其中xml文件内容也是相当于有固定格式的代码,感兴趣的可以看下:https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/common.xml
文本可能有些不够直观,将有规律的格式通过表格来展示,会更直观一些,如匿名飞控的协议:
使用格式清晰的表格,便于内容的理解传达。当我们修改通信协议时,修改表格模板,然后使用自动化脚本自动生成修改后的协议代码,这样我们只需维护更直观的表格,而无需反复修改代码。
实践操作
读取excel表格
一次性读取全部excel表格内容,相比于多次读取部分内容,可以节省打开excel表格的时间,提高读取速度
% num返回的是excel中的数字,txt输出的是文本内容,raw输出的是未处理数据
[num,txt,raw]=xlsread('C:UsersAdministratorDesktop est
a.xls')
形式如下:
内容分析
通过size函数,可以获取到读取内容的行数与列数,方便进行整体的遍历:
[row,col] = size(txt);
特殊字符分析解析,可使用正则表达式,或者特殊函数,如判断读取内容是否包含分号:
if contains(strtrim(cell2mat(ParamInline(j,1))), ';')||contains(strtrim(cell2mat(ParamInline(j,1))), ';')
自动化写代码
打印某个单元格:
fprintf(fid,'你好程序员" ''%s''"; ',strtrim(cell2mat(txt(1,1))));%打印第一列
新建文件并写入数据
x=[1 2 3 4];%要存入的数据矩阵。fp=fopen('A.txt','a');%'A.txt'为文件名;'a'为打开方式:在打开的文件末端添加数据,若文件不存在则创建。fprintf(fp,'%d ',x);%fp为文件句柄,指定要写入数据的文件。注意:%d后有空格。fclose(fp);%关闭文件。
运行结果如下:
至此人工智能第一步就完成了,有多少人工,就有多少智能,期待你的精彩!
END
开心飞翔,灵动如鸽
愿与无人机爱好者共创一片蓝天梦!
常按二维码
关注更多精彩内容!
以上是关于matlab自动化脚本对于搞飞控有啥用?的主要内容,如果未能解决你的问题,请参考以下文章