MATLAB软件入门分析(附卡尔曼滤波的例程、mlx文件)
MATLAB软件入门分析
Date:2023年3月13日
Author:Evand
入门综述
使用matlab编程时,通常使用.m文件,把所有代码编好后,统一运行or调试。如果想运行一两行代码,可以使用“命令行窗口”,一般在MATLAB主窗口的下方。
github上面的文件:https://github.com/evandworld/MATLABstart/blob/main/MATLABstart.mlx,是.mlx的实时编辑脚本文件,可以理解成介于.m文件和命令行之间的东西,将文本(据说兼容latex)与代码结合,可以实时调试,所以实时性很高,但是也因此对电脑的性能要求稍微高一点。
下面打一个hello MATLAB的代码,并显示出来:
disp('hello MATLAB');
此时,可以按一下F5或点一下上方的“运行”,能看见hello MATLAB直接显示在上面那一行代码的下面(也可以调整到右侧)了。
绘图
绘图最常用的是plot(绘制曲线图),但是就算是plot也有很多种搭配,比如想画一条直线,从(1,2)到(3,4),可以像下面这样先设定两个向量:
a = [1,3];
b = [2,4];
然后将a向量作为横坐标,b向量作为纵坐标,用plot绘制即可,为了防止图像之间互相干扰,可以在代码前面加一个"figure",以生成一个新的图画:
figure;
plot(a,b);
但是此时可能还想打上横纵坐标的值:
figure;
plot(a,b);
xlabel('横坐标');
ylabel('纵坐标');
如果还想加上标题,则用"title(‘标题’);"即可。
运算
正常的加减乘除都跟c语言一样,对于矩阵运算,点乘是.,矩阵相乘是
对于一个矩阵A,如果要提取它的第一行第一列的元素,则用A(1,1);
如果要提取第1~3行,则用A(1:3,:);
A = [1,2,3,4;5,6,7,8;9,1,2,3;4,5,6,7];
A(1,1) %代码后面不加冒号,运算后会直接输出结果
A(1:3,:)
if-else示例:
if 1>3disp('1>3');
elsedisp('1 <= 3');
end
for循环:循环次数用冒号结构,循环体以end结尾
a=1;
for i=1:30a = a+1;
end
disp(a);
卡尔曼滤波运用
% edited by JBR
% data. 2020.5.1
% 自由落体卡尔曼例程
clear;clc;
i1 = 1:20;
% 录入观测值(单位为是km)
height = 2000-0.5*9.8*[1:20].^2; %真实的高度
Z = height+9*randn(1,20); %实际的观测
g_INS = 9.8+0.1*randn(1,20)+0.001;
X = [2000;-10]; %初值(高斯分布的均值)
P = [1 0;0 2]; %初值误差方差
A = [1 1;0 1]; %观测矩阵
C = [1 0];% 系统误差方差
R = 8; %量测误差方差
Q = 0.1; %状态噪声
X_ = A*X+[0;-g_INS(1)];
P_ = A*P*A'+Q; %计算第二时刻的P(估计值)
K = P_*C'/(C*P_*C'+R); %由PCR求增益
X = X_+K*(Z(1)-C*X_); %由状态转移X_、观测Z和增益求当前时刻的状态预测
XX = X; %XX是存储滤波值的地方,此处对其赋第一行的值
P = (eye(2)-K*C)*P_; %eye(2)
for i = 2:20X_ = A*X+[0;-g_INS(i)];P_ = A*P*A'+Q;K = P_*C'/(C*P_*C'+R);X = X_+K*(Z(i)-C*X_);XX = [XX,X_+K*(Z(i)-C*X_)];P = (eye(2)-K*C)*P_;
end
figure;
plot(i1,Z,'r.',i1,XX(1,:),'b'); %最后的'b'指用默认线条画蓝色(blue)的线
xlabel('时间/s');ylabel('位置/m'); %设置横纵坐标
legend('估计观测的位置ֵ','估计的位置'); %设置标注
title('位置'); %设置标题
% 速度
figure;
plot(i1,XX(2,:),'r.'); %最后'r.'表示用红色(red)画点
xlabel('时间/s');ylabel('速度/m');
title('速度估计值');% 误差绘图
err_Z=Z-height;
err_INS = 2000-0.5*g_INS.*[1:20].^2-height;
err_est=XX(1,:)-height;
figure;
plot(i1,err_Z,i1,err_INS,i1,err_est,'.-'); %最后'.-'表示用默认颜色画带点的实现
xlabel('时间/s');ylabel('位置/m');
title('位置误差');
legend('观测误差','INS误差','滤波估计后的误差');
衡量指标:
绝对值:abs(),最大值:max(),平均值:mean()
max(abs(err_est))
mean(abs(err_est));
MATLAB软件入门分析(附卡尔曼滤波的例程、mlx文件)相关推荐
- 国内 Android 手机典型勒索软件详情分析(附解锁方法)
事件说明 2017年2月13-17日,RSA Conference 2017 信息安全大会在美国旧金山Moscone中心隆重举行.大会第一天就是一系列关于Ransomware(勒索软件)的议题,而在刚 ...
- matlab中停止调试快捷键,matlab软件中各种快捷键的用法,还有和断点有关的用法...
答:1,.F5运行啊什么的这些快捷键,简单也没必要.matlab最有用,而且很多人都不知道的是,当执行程序的时候突然想停下来不知道怎么办:Ctrl+C :你知道这个就可以了,很多人傻傻的开任务管理器把 ...
- Matlab编程入门指南:简介、安装、学习路线和几十个编程案例分析。
一.Matlab编程入门指南:简介.安装.学习路线和几十个编程案例分析. 1.Matlab编程语言是一种广泛应用于科学计算.工程计算.数据分析.统计分析.信号处理等领域的高级数值计算和数据可视化软件. ...
- matlab时频分析工具箱安装_EEG时频分析介绍与实现(基于EEGLAB、NetStation与Analyzer2软件)...
本文首发在个人博客上(7988888.xyz),此文章中所有链接均通过博客进行访问. 我在很早之前有翻译过一篇通过小波变换来进行时频分析的文章,可参考<小波教程>.最近,我在油管上看到了E ...
- 五步移相法matlab程序_用MATLAB软件对逆变电路移相调压进行仿真,30°,60°,90°的波形,并用分段分析法分析其原理_学小易找答案...
[简答题]Translate the following ad into (1) a TV comercial, and (2) a factual introduction. Marie Franc ...
- 视频教程-x86/x64软件逆向分析入门-C/C++
x86/x64软件逆向分析入门 成都理工大学优秀讲师,教授,二十年开发经验,和十六年一线教学工作经验,发表学术论文十余篇.参与包括863项目等多个国家级科研项目,参与包括微信机器人(WeChaty)等 ...
- MATLAB安装失败,MATLAB软件总是运行特别慢原因分析
MATLAB安装失败,MATLAB软件总是运行特别慢原因分析 原因:以前安装的matlab含有许可文件未删除. 解决方法:将c盘matlab文件全部删除即可.解决许可文件逆破解).
- matlab 摩擦角轮廓拟合,Matlab软件在边坡位移稳定性分析及治理中的应用(原稿)
<Matlab软件在边坡位移稳定性分析及治理中的应用(原稿).doc>由会员分享,可在线阅读全文,更多相关<Matlab软件在边坡位移稳定性分析及治理中的应用(原稿)>请在ww ...
- matlab表面形貌,采用Photoshop与MATLAB软件分析壁画表面形貌变化的方法与流程
本发明涉及一种壁画表面形貌变化的分析方法,尤其涉及一种采用Photoshop与MATLAB软件分析壁画表面形貌变化的方法,属于壁画表面形貌变化的分析技术领域. 背景技术: 壁画是墙壁上的艺术,即直接画 ...
最新文章
- GVINS:基于GNSS视觉惯性紧耦合的平滑状态估计方法
- 实例讲解之校园网病毒该如何铲除
- 11-Memory Management Examples
- linux合并vi的两个文件,两个文件的对比查看及合并工具:vimdiff-文件合并
- huizhang要约会
- GDCM:Torture的测试程序
- 深度探索linux系统虚拟化 原理与实现,深度探索Linux系统虚拟化:原理与实现
- 基础总结篇之中的一个:Activity生命周期
- www(apache)服务器的基本设置
- 分库分表学习总结(6)——分库分表?选型和流程要慎重,否则流程会失控!
- [JOYOI1326] 剑人合一
- 软件测试——测试用例设计测试分类详解
- 图解十大机器学习算法
- 罗技 GHUB驱动的官方下载网址
- 微信小程序开发常用代码
- Visual Studio 安装 FLTK
- 因严重 OpenSSL 漏洞,Fedora 37 推迟至 11 月中旬发布
- 50个表单功能,验证,安全和自定义化的jQuery插件
- CAD 二次开发 图层操作(1)创建图层
- 2021年跨境电商行业相关数据
热门文章
- 在GreenBrowser中使用35766书签
- 如何区分 三极管共射级,共集级,共基级? [模电]
- 货运车辆视频监管及预警系统是否有强制安装的必要?
- 类似滴滴打车司机端滑动开始接单SlideView
- Web前端开发 table标签相关用法和属性
- elementUI中的el-table标签介绍
- cf 1153D-Serval and Rooted Tree(思维,树形dp)
- SAP 联产品 副产品
- 计算方法(c语言版)靳天飞答案,《数值分析教程》PPT课件.ppt
- html 转换 swf文件怎么打开,swf文件无法打开 swf格式在电脑上怎么打开?swf格式转换的时候提示不是音视频文件...