首页 > 其他分享 >MATLAB入门教程(带详细注释的MATLAB代码)

MATLAB入门教程(带详细注释的MATLAB代码)

时间:2024-04-05 15:31:39浏览次数:20  
标签:disp plot 文件 代码 入门教程 注释 MATLAB mlx

使用方法

将mlx文件在MATLAB上运行,即可得到下列结果:
在这里插入图片描述

完整代码

给出mlx文件的全文

MATLAB软件入门分析
Date:2023年3月13日
Author:Evand
入门综述
使用matlab编程时,通常使用.m文件,把所有代码编好后,统一运行or调试。如果想运行一两行代码,可以使用“命令行窗口”,一般在MATLAB主窗口的下方。
本文件是.mlx的实时编辑脚本文件,可以理解成介于.m文件和命令行之间的东西,将文本(据说兼容latex)与代码结合,可以实时调试,所以实时性很高,但是也因此对电脑的性能要求稍微高一点。
下面打一个hello MATLAB的代码,并显示出来:
disp('hello MATLAB'); %注释
此时,可以按一下F5或点一下上方的“运行”,能看见hello MATLAB直接显示在上面那一行代码的下面(也可以调整到右侧)了。
MATLAB强大的兼容性:对于一个计算语句,加分号与不加分号都能运行,在无关紧要的地方可以随意加空格:
a = 100;
b = 200
c=300
基本语句
d = a+b;
e = 100^3+2*2-12;
f = [1,2;3,4];
g = [1,2;3,4];
f.*g;
f*g;
g^(-1);
f/g;


其他介绍提纲
版本:https://ww2.mathworks.cn/downloads/
操作界面:工具栏、命令行、工作区workspace、编辑器横竖窗口
m文件执行、函数调用
断点、运行到指定处
绘图
plot
绘图最常用的是plot(绘制曲线图),但是就算是plot也有很多种搭配,比如想画一条直线,从(1,2)到(3,4),可以像下面这样先设定两个向量:
a = [1,3];
b = [2,4];
然后将a向量作为横坐标,b向量作为纵坐标,用plot绘制即可,为了防止图像之间互相干扰,可以在代码前面加一个"figure",以生成一个新的图画:
figure;
plot(a,b);
但是此时可能还想打上横纵坐标的值、更改线条颜色和数据点的形式:
figure;
plot(a,b,'.-r'); %cmyk ,- : --
xlabel('横坐标');
ylabel('纵坐标');
如果还想加上标题,则用"title('标题');"即可。
累积密度函数cdf
cdfplot(err_est);


运算
正常的加减乘除都跟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>3
    disp('1>3');
else
    disp('1 <= 3');
end
for循环:循环次数用冒号结构,循环体以end结尾
a=1;
for i=1:30
    a = a+1;
end
disp(a);
卡尔曼滤波运用
% edited by JBR
% data. 2020.5.1
% 自由落体卡尔曼例程
clear;clc;
i1 = 1:20;
% 录入观测值(单位为是km)
% Z = [1.9945,1.9794,1.9554,1.9214,1.8777,1.8250,1.7598,1.6867,1.6036,...
%     1.5092,1.4076,1.2944,1.1724,1.0399,0.8980,0.7455,0.5850,0.4125,0.2318,0.0399];
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:20
    X_ = 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));

mlx文件下载地址:

https://download.csdn.net/download/callmeup/89085087

上述链接是付费下载链接,如果你订阅了我的专栏:https://blog.csdn.net/callmeup/category_12574912.html,用订阅的账号给我私信,这个xls文件可以送给你。

标签:disp,plot,文件,代码,入门教程,注释,MATLAB,mlx
From: https://blog.csdn.net/callmeup/article/details/137401332

相关文章

  • MATLAB | 基础知识
    专题一:MATLAB数值数据1.数值数据类型的分类(1)整型: 无符号整数:无符号8位整数,无符号16位整数,无符号32位整数,无符号64位整数 带符号整数:带符号8位整数,带符号16位整数,带符号32位整数,带符号64位整数无符号8位整数数据范围:00000000~11111111(0~2^8-1)带符号8位整数数据范......
  • 分类预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小支持向量机数据分类预测
    分类预测|Matlab实现CPO-LSSVM冠豪猪算法优化最小支持向量机数据分类预测目录分类预测|Matlab实现CPO-LSSVM冠豪猪算法优化最小支持向量机数据分类预测分类效果基本介绍程序设计参考资料分类效果基本介绍1.Matlab实现CPO-LSSVM冠豪猪算法优化最小支持......
  • 回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测
    回归预测|Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测目录回归预测|Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测预测效果基本介绍程序设计参考资料预测效果基本介绍Matlab基于CPO-GPR基于......
  • 【基于LSTM的多输出回归预测】MATLAB代码分享
    文章目录前言一、LSTM的基本原理二、多输出回归预测模型架构三、示例代码1.读入数据并划分数据集2.运行结果总结前言`在当前的数据驱动时代,预测未来的趋势、需求、资源分配等成为了许多行业关键决策的基石。长短期记忆网络(LongShort-TermMemory,LSTM)作为一种特......
  • LRU缓存(超详细注释)
    /***表示双向链表中的节点。*/classNode{constructor(key=0,value=0){this.key=key;//缓存条目的唯一标识符。this.value=value;//与键关联的值。this.prev=null;//引用列表中的上一个节点。this.next......
  • Matlab|储能辅助电力系统调峰的容量需求研究
    目录1 主要内容目标函数约束条件2 部分代码3 程序结果4下载链接1 主要内容该程序参考文献《储能辅助电力系统调峰的容量需求研究》,主要是对火电、风电和储能等电力设备主体进行优化调度,在调峰能力达不到时采用弃负荷,程序以发电成本、投资运维成本、弃风惩罚、......
  • SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环
    SCI一区|Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测目录SCI一区|Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介......
  • 基于Volterra级数的DFE判决反馈均衡器可见光通信系统误码率matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述      Volterra级数是一种描述非线性系统行为的强大工具。在一个非线性系统中,输出信号y(t)可以通过输入信号x(t)的多个卷积和来表示,形成所谓的Volterra级数。第一阶Volterra核(线性部......
  • m基于深度学习的肉类新鲜度检测系统matlab仿真,带GUI操作界面
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       数据采集:获取肉类样品在不同新鲜度阶段的图像数据,通常使用高分辨率相机拍摄并标注对应的新鲜度等级。       GoogleNet模型因其独特的“inception”模块而得名,这种模块设计......
  • 『VUE』11. 操作数组的方法(详细图文注释)
    目录vue中操作数组的方法会修改原数组的会进行渲染更新不修改原数组的不会进行渲染更新push自动渲染concat赋值渲染总结欢迎关注『VUE』专栏,持续更新中欢迎关注『VUE』专栏,持续更新中vue中操作数组的方法vue中数组数据呈现在网页,只检测一开始用到的数......