MATLAB学习笔记

2023-05-16

MATLAB学习笔记

  • 一级目录
    • 备忘录
    • HELP
    • 文件路径
    • MATLAB函数定义与表达
    • MATLAB特殊变量和常量
    • MATLAB文件读写
    • 数组
      • 数组的创建
      • 常用操作
      • 常用操作
      • 常用操作
    • MATLAB画图
      • plot函数:改变图像中线的颜色和线条形式
      • legend 函数
      • hold on

一级目录

备忘录

  • 变量命名字母开头和数字下划线
  • MATLAB区分大小写
  • who语句显示所有已经使用的变量名,whos为变量具体信息
  • format short小数点后四位(默认),format long 命令显示16位,format bank小数点后两位,format rat 最接近有理式
  • 矩阵表示:横空格列分号
  • Matlab中函数保存在.m文件中是,函数名必须与文件名相同
  • 计算乘法时应尽量使用.乘而非乘,因为前者对于输入参数为矩阵的情况也可使用。
  • Matlab需要使用…来拼接多行

HELP

1.help
help  //显示help 主题一览表
help plot //显示有关三维做图指令
help [ //显示特殊字符与符号帮助
help help //显示help 的帮助信息

2.lookfor
lookfor  //它可提供通过一般的关键词,搜索出一组与之相关的命令
lookfor fourier  //eg. 寻找含有傅立叶变换的相关指令

3.demo  //打开帮助文档,会有许多函数等的使用示例
4.helpwin  //ATLAB file help displayed in a window
5.helpdesk  //omprehensive hypertext documentation and troubleshooting.

原文链接:[https://blog.csdn.net/Gou_Hailong/article/details/106092705]

文件路径

1.获取当前工作路径
cd

2.更改当前工作路径,filepath 为要设置的工作路径
cd('filepath')
pathtool //弹出设置路径的窗口

3.返回上一文件路径
cd('..\')

MATLAB函数定义与表达

function [输出变量名] = 函数名(输入变量名)
函数句柄 = @(输入变量) 输出变量

MATLAB特殊变量和常量

NameMeaning
ans默认的变量名
eps浮点数相对误差
i,j虚数单位
Inf无穷大
NaN不定值(不是数字)
pi圆周率
realmax最大的正实数
realmin最小的正实数
nargin函数实际输入参数个数
nargout函数实际输出参数个数

MATLAB文件读写

命令作用
save(filename,variables,'-ascii')将变量variables以文本形式存入文件中
A= load(filename,'-ascii')从文本形式文件中读取数据
[num,txt,raw] = xlsread(filename,sheet,xlRange)读取Excel文件
xlswrite(filename,A,sheet,xlRange)无穷大

数组

本章内容为转载
原文链接:https://blog.csdn.net/Gou_Hailong/article/details/109362945

数组的创建

1.简单创建
//空数组-标量-行/列向量-二维/多维数组 []
A=[];//空数组
A=[1 2 3 4]; //直接输入法-行向量
A=[1;2;3;4]; //直接输入法-列向量
A=start:step:end; //冒号法-行向量
A=linespace(start,end,n) //等差数列
A=logspace(start,end,n)  //等比数列 

2.函数创建
//下列函数中若参数只有一个,则产生方阵
zeros(m,n)  //产生m x n 的零矩阵
ones(m,n)   //产生所有元素都为1 的 m x n 矩阵
eye(m,n)  //产生m x n 的单位阵
pascal(m,n)  //产生m x n 的Pascal 矩阵
hilb(n)  //产生n x n 的Hilbert 矩阵
rand(m,n)  //产生m x n [0,1] 均匀分布的随机数矩阵
randn(m,n)  //产生m x n (0,1)的正态分布的随机数矩阵
magic(n)  //产生n x n 的魔方阵,其每行、列及对角线上的元素和都相等
diag(v,k)  //对角数组
/*其第k条对角线元素对应向量v的元素,k缺省为0 
k>0表示主对角线向右上偏离k个元素位置的对角线, 
k<0则向左下偏离
如果输入参数v是二维数组,则函数diag提取对角元素组成一个一维向量*/
diag([1 2],1)

3.数组属性
//1.测试函数,返回值为逻辑上的0(false) / 1(true)
isempty,  isscalar,  isvector,  issparse
size(x)  //返回数组大小,一个保存数组维数的行向量
length(x) //返回数组维数中较大的那一个
numel(x)  //返回数组所有元素个数
//单下标与全下标的转换:对于m行n列的数组A,
A(x,y)=A((y-1)*m+x)
sub2ind(size(x),2,10)
[i j]=ind2sub(size(x),20)

在这里插入图片描述

常用操作

判断两个矩阵是否相等有函数isequal()、all(A(😃 == B(😃),首先做了如下实验:

//逻辑上的 0(false) / 1(true)
isequal(1,1) //1
isequal(nan,nan) //0
isequal(inf,inf) //1

matlab判断两个浮点数是否相等实际上并不是判断他们两个绝对意义上是否相等,而是有一个精度限制的,用代码表示为:

a=[1:5];  // 1     2     3     4     5
b=[1:5];  // 1     2     3     4     5
all(a(:) == b(:));   //1
a(1,1)=1+1e-30;      //1     2     3     4     5
all(a(:) == b(:));   //1
abs(a-b)<eps         //判断a,b是否相等相当于判断他俩的绝对值是否小于eps
//eps是一个很小的数,可能可以自己设置。

现在我们已经知道,在matlab里面nan~=nan,如果想判断两个矩阵(里面有nan元素)是否相等,咋整呢?这里提供一个小函数,大体思路就是,把nan换成inf,然后再判断两个矩阵知否相等。

%myequal.m
function eq=myequal(mat1,mat2)
mat1(isnan(mat1))=inf;  %这个数字可以是其他的,只要不是nan即可
mat2(isnan(mat2))=inf;
eq=isequal(mat1,mat2);
end

常用操作

1.数组连接
cat(dim,A1,A2,)//按照指定的方向将多个数组连接成大尺寸数组
horzcat(A1,A2,)//水平方向连接数组,相当于cat(2,A1,A2,…)
vertcat(A1,A2,)//垂直方向连接数组,相当于cat(1,A1,A2,…)
repmat(A,m,n)   //块状复制函数-把数组A当作单个元素,扩展出m行n列的由此单个元素组成的扩展数组
blkdiag(A, B,)//对角块生成函数-把数组A,B作为新数组的主对角块,其他位置用零数组块填充

2.数组翻转
fliplr(A)//flip matrix in left/right direction -左右翻转
flipud(A)//上下翻转
flipdim(A,k)//按指定方向翻转, k=1上下, k=2左右
rot90(A,k)//逆时针旋转k*90度
reshape(A,m,n)//数组尺寸调整,将数组调整为 m x n 形式

3.数组运算
AB
AB
A*B
A/B // A*inv(B)
A\B // inv(A)*B
A^n // n为整数, n个A相乘
A.*B// 两个数组的对应元素相乘
A./B// A的各个元素为分子, B的对应元素为分母,逐个做除法
A.\B// A的各个元素为分母, B的对应元素为分子,逐个做除法
A.^B// 逐个元素求幂

4.数组查找
a=find(A)//返回单下标
[a,b]=find(A)//返回双下标
//find函数通常结合各种关系运算和逻辑运算,实现各种查找功能

5.数组排序
sort(A)

常用操作

m=yourmat;
[a,b]=size(m);             %矩阵的行列是a,b
num=a*b-numel(find(isnan(a))); %矩阵中除了nan外所有元素的个数
m1=reshape(m,a*b,1);      %搞成一个列向量,或者直接m1=m(:);
max1=max(m1);             %计算最大值
min1=min(m1);             %计算最小值
mean1=nanmean(m1);        %计算除nan之外的均值,mean
mode1=mode(m1);           %除了nan 返回值最小的那个众数
med1=nanmedian(m1);       %求除了nan的中位数,median
k(isinf(m1))=[];          %去掉inf
k(isnan(m1))=[];          %去掉nan
per=tabulate(k);          %统计频率和频数
find(m==1);               %找到m中等于1的元素的位置,列向量
sum(sum(m>3));            %求m矩阵大于3的元素个数
sum(sum(m==3));           %求m矩阵等于3的元素个数
A=m(:);                   %快速把一个多维矩阵变成一个列向量
photo1(isnan(photo1))=inf;%把一个数替换成另一个数
photo1(photo1==1)=inf;
//注:上述求最值的函数是对列向量的操作,若对矩阵操作可重叠函数使用。

MATLAB画图

plot函数:改变图像中线的颜色和线条形式

在plot(x,y)函数括号里面增加特性
改变图像中线的颜色和线条形式(针对plot函数)

legend 函数

添加图像说明

legend('A图像','B图像') 

hold on

多条函数出现在同一个图中,后加hole on

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB学习笔记 的相关文章

  • PX4开发中遇到的一些问题和解决方法

    文章目录 前言正文1 仿真出现 FCU Preflight Fail Accel 0 uncalibrated等错误2 添加mavlink数据发送or提高数据发送频率3 PX4在不同硬件下的RC输入4 PX4 参数自定义5 电机输出顺序6
  • PX4自定义混控器

    文章目录 前言混控器简介混控器的启动自定义混控器参考 xff1a 前言 上一篇我对PX4的控制和输出的全流程都进行了较为详尽的分析 xff0c 本来想着之后的研究主要在四旋翼控制算法上 xff0c 不会定义啥新机型 xff0c 混控器的部分
  • 运行VINS,相机模型与参数的准备

    相机模型与参数 对于VINS来说 xff0c 相机的内参的准确是万分重要的 如果参数不对 xff0c 那么100 跑飞 xff0c 没商量 要想VINS可以很好的工作 xff0c 给出良好的相机内参是必须的 对于realsense系列的相机
  • MTF模块 PX4 光流模块详细配置

    对于研究无人机的新手 xff0c 直接飞手动模式 xff0c 可能过于困难 在室内测试时 xff0c 又没有GPS可用 为了安全和方便起见 xff0c 可以考虑选用光流模块 xff0c 降低入手难度 这里我们选择微空科技出品的MTF 01模
  • GNSS系列(3)------GNSS定位漂移讨论

    由于工作需要 xff0c 最近开启了GNSS系列文章的撰写工作 xff0c 发布于公司官网 xff0c 现将其同步至CSDN 原文链接 xff1a http onemo10086 com school article 196 小伙伴们 xf
  • ML302 OpenCPU系列(5)---Log工具的使用

    ML302 OpenCPU系列 xff08 5 xff09 Log工具的使用 一 使用串口助手抓取Log二 使用Coolwatcher抓取AP Log三 查看死机现场 工欲善其事 xff0c 必先利其器 Log是嵌入式开发中最重要的调试手段
  • 2017--就业分享之IT校招现状和面试经历

    在介绍自己整个春季和夏季实习求职经历之前 xff0c 先给大家公布一则新闻 2017届互联网校招薪酬报告 xff1a 先说下对 16 年 17 届校招的总体看法 xff1a 本该是个不大不小的年 xff0c 结果被华为一己之力搞成了个大年
  • Shell判断字符串是否相等,=两边需要有空格

    custom span class token operator 61 span span class token string 34 34 span span class token keyword if span span class
  • 学嵌入式系统设计的人应不应该看模拟电路基础

    我学嵌入式系统设计是首先从数字电路看起的 由于数字电路这门课程在大一的时候就学过 xff0c 所以觉得略看就能看懂 xff0c 也算是把这门课复习了一遍 但是当我看到存储器和可编程控件这一章时 xff0c 里面讲到存储单元主要是由半导体组成
  • 使用Python爬取淘宝两千款套套

    各位同学们 xff0c 好久没写原创技术文章了 xff0c 最近有些忙 xff0c 所以进度很慢 xff0c 给大家道个歉 gt 警告 xff1a 本教程仅用作学习交流 xff0c 请勿用作商业盈利 xff0c 违者后果自负 xff01 如
  • ​揭秘国内首个进入Apache的高校顶级项目——Apache IoTDB

    本文约4200字 xff0c 建议阅读10 43 分钟 本文与你分享有关开源数据库项目成长 开源社区治理 加速赋能企业等方面的观点与见解 近年来 xff0c 随着人工智能 物联网的兴起 xff0c 大数据成为重要的生产资料 xff0c 而时
  • 收藏 | 一张地图带你玩转机器学习(附资源)

    本文来自AI学习与实践平台SigAI 本文共16965字 xff0c 建议阅读20 43 分钟 本文对常用的机器学习和深度学习算法进行了总结 xff0c 整理出它们之间的关系 xff0c 以及每种算法的核心点 xff0c 各种算法之间的比较
  • python代码获取远程电脑IP

    实时的使用邮箱发送IP地址到指定邮箱 使用python代码封装好的软件 xff1a 链接 xff1a https pan baidu com s 1Flz7HHtZM0w3HGDeF 4BhQ pwd 61 yxy2 提取码 xff1a y
  • win11旗舰版安装WSL子系统和环境-3Ubuntu换源

    Wsl2开启 Ubuntu换源 https blog csdn net WPwalter article details 101508601 这个blog是进行系统安装WSL2 的 Linux 第一步 xff1a 启用虚拟机平台和 Linu
  • win11旗舰版安装WSL子系统和环境-12配置SSH(Win远程连接)

    配置SSH Win远程连接 https blog csdn net weixin 43897590 article details 109446339 utm medium 61 distribute pc relevant downloa
  • win11旗舰版安装WSL子系统和环境-17Xshell连接wsl子系统的ssh

    https blog csdn net w4187402 article details 85992013 那么问题找到了 出现这样的问题只能是ip冲突 xff0c 其他同事的服务器占用了我当前服务器的ip地址 xff0c 我现在连接的服务
  • 超好用的word插件-工作和科研

    Word精灵7 0版 可以很好地处理图片 xff0c 转换 xff0c 以及各种批量处理操作 GrammarlyAddInSetup 可以很好地校对英文错误 xff0c 单词以及语法错误 xff0c 但被动语态不太行 链接 xff1a ht
  • Adobe Premiere Pro 2023 SP(未完成)

    需要添加
  • 一个程序员所应该具备的精神

    所谓障碍都是主观上的 如果你想研发什么新的技术 xff0c 只需要在冰箱里放满食物和饮料 xff0c 再有一台便宜的计算机 xff0c 和以之献身的决心 xff0c 你即可拥有任何你想拥有的编程深度 xff01 John Carmack
  • ROS中的多线程

    ROS中的多线程 ROS多线程消息回调处理函数多线程MultiThreadedSpinnerAsyncSpinner callback传参timertimer加参数 C 43 43 中的多线程Python中的多线程 ROS使用master管

随机推荐

  • Linux系统下磁盘分区

    计算机的磁盘分区信息是计算机引导操作系统必须的信息 xff0c 根据引导方式的不同 xff0c 一般分别保存在MBR或者GPT中 其中 xff0c BIOS引导会读取MBR xff08 Main Boot Record xff09 中的磁盘
  • ROS中的tf发布读取转换

    ROS tf 基础使用查看tf信息1 创建link关系图2 在rqt中查看link关系图3 终端中输出tf变换关系4 rviz中查看 程序中使用TransformerTransformBroadcasterTransformListener
  • linux下shell脚本启动其他可执行程序

    linux下shell脚本启动其他可执行程序 零 前言一 C 43 43 代码二 shell脚本三 shell运行效果 零 前言 linux下的项目中经常需要使用shell脚本去启动其他程序的操作 xff0c 下面是自己编写的测试程序 xf
  • 嵌入式面试常见问题

    1 什么是嵌入式 以应用为中心 xff0c 以计算机技术为基础 xff0c 软硬件可裁剪 xff0c 适用于应用系统对功能 可靠性 成本 体积 功耗有严格要求的专用计算机系统 2 字符设备和块设备的区别 xff1f Linux里设备类型分
  • 步进电机和伺服电机的区别你知道吗?

    在许多领域都需要各种电机 xff0c 包括知名的步进电机和伺服电机 但是 xff0c 对于许多用户而言 xff0c 他们不了解这两种电机的主要区别 xff0c 因此他们始终不知道如何选择 那么 xff0c 步进电机和伺服电机之间的主要区别是
  • 独轮车成功站立

    真是废了不少力 卡了这么久首要原因就是过于青睐串级PID 串级PID可以自主寻找机械中位的特性实在是太优雅了 但动量轮这种对即使性要求极高的系统似乎不能用串级PID实现 昨天沉下心把串级PID推掉换成并联 xff0c 波形一下就朝着正常的方
  • 字节序:大端字节序(Big Endian) & 小端字节序(Little Endian)

    一 什么是字节序 xff1f 多字节数据存储在存储器中的顺序就叫做字节序 字节序又分为俩种 xff0c 一种叫做小端字节序 xff1b 另外一种叫做大端字节序 二 大端字节序 xff08 Big Endian xff09 amp 小端字节序
  • Google doc

    https docs google com spreadsheets d 1lOtc072A0QaJAXormoUeiaqZu5 20BR1ikh0YZe65PI edit gid 61 0
  • Boot Loader启动过程分析

    一 Boot Loader的概念和功能 1 嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分 xff1a xff08 1 xff09 引导加载程序 xff1a 其中包括内部ROM中的固化启动代码和Bo
  • eclipse:解决Ctrl+S 无法保存问题

    解决Ctrl 43 S 无法保存问题 工作中有一个同事的eclipse中无法使用Ctrl 43 S保存文件 xff0c 尝试了各种方法 xff0c 禁用了所有其他软件的快捷键 xff0c 依然无法解决 xff0c 最终发现是eclipse自
  • windbg学习笔记 FOR 内核调试(三) --进程句柄表HANDLE_TABLE

    windbg学习笔记 FOR 内核调试 三 进程句柄表HANDLE TABLE 想当年 初学核编 阅读第三章的内核对象的时候跟看天书没什么感觉 死命在想到底内核对象 句柄是个什么东西 干嘛用的 于是我们工作室的老大就对我说 这篇看过就过了
  • tx2 上 安装nvidia Isaac安装记录

    Isaac的功能挺多 xff0c 但是只支持最新的版本 xff0c 所以没办法 xff0c 只能装最新的了 下面就记录一下这个过程 安装环境真是很麻烦 xff0c 不是下载失败就是下载慢 一天基本安装不完 第一步安装1804 因为只支持18
  • 关于进程间的访问权限等进程间控制资料收集

    http www vckbase com DUPLICATEHANDLE函数可以实现将同步内核对象被拷贝并且将原内核对象关闭 xff0c 从而达到可以自由控制内核对象的目的 xff0c 这可以实现使得只能单一启用的进程成为多启用的进程的目的
  • IIC总线基础知识

    IIC总线基础知识 一 简介 IIC xff08 Inter Integrated Circuit xff09 是一个多主从的串行总线 xff0c 又叫I2C xff0c 是由飞利浦公司发明的通讯总线 xff0c 属于半双工同步传输类型总线
  • 常见RISC-V介绍

    当前一颗新出的CPU xff1a RISC V简直火透了半边天 xff0c 无论是财大气粗的阿里系的平头哥 xff0c 还是新创企业 xff0c 似乎只要和RISC V挂上钩就足可以实现赶英超美 那事实上RISC V是什么 xff1f 除了
  • qsort的compare函数

    qsort的compare函数 功能 xff1a 使用快速排序例程进行排序 头文件 xff1a stdlib h 用法 xff1a void qsort void base size t num size t width int cdecl
  • 深度相机(3D相机)

    二维图片 xff0c 人眼可以通过物体的相对位置关系判断物体距离的远近 xff0c 而相机则不可以 深度相机 xff08 3D相机 xff09 就是终端和机器人的眼睛 xff0c 其就是通过该相机能检测出拍摄空间的景深距离 通过深度相机获取
  • ubuntu只有一种分辨率的解决方案——4K显示屏与扩展屏幕

    4K显示屏的ubuntu系统在安装NVIDIA显卡后 xff0c 只有一个分辨率为 xff1a 3840 2160 xff0c 如图所示 xff0c 该分辨率在扩展显示器的使用时 xff0c 会出现4K主屏幕分辨率很高 xff0c 而扩展显
  • 使用RTSO-9003拓展板的TX2镜像备份与恢复

    须知 TX2进入recovery模式 在给TX2通电的时候 xff0c 马上按住板子上的recovery键 xff0c 持续3秒左右 xff0c 继续保持按住recovery键并按住reset键 xff0c 便可以进入TX2的recover
  • MATLAB学习笔记

    MATLAB学习笔记 一级目录备忘录HELP文件路径MATLAB函数定义与表达MATLAB特殊变量和常量MATLAB文件读写数组数组的创建常用操作常用操作常用操作 MATLAB画图plot函数 xff1a 改变图像中线的颜色和线条形式leg