matlab基础篇(一)

news2025/1/31 20:12:26

 matlab对大小写敏感,首字母必须为字母,命名最长长度为63

1.计算语法

  •  2^{3.5*1.7}
2^(3.5*1.7)

  • e^{\sin10}  不是   e^sin(10)

而是

exp(sin(10))
  •  ln在matlab中表示为log,ln10用matlab语句表示为log10
  • π用pi表示
  • sinπ,sin2π分别表示为
sinpi(1)
sinpi(2)
  • 5%2可以表示为5/2或者2\5。(记忆方式,斜杠偏向哪个数,哪个数就是被除数)

  • 科学计数法表示:如3*10^{8},可以表示为3e8,(e可以换成E,d,D) 

  • rem(x,y)与x符号一致。mod(x,y)与y的符号一致。

 2.matlab软件使用技巧

  • ctrl+c可以强制停止matlab正在运行的程序
  • 在命令行按上下可以查看快捷显示运行过的语句
  • 命令行输入clc清空窗口指令,输入clear清空工作区的所有变量
  • 在命令行输入脚本名可以执行脚本
  • whos查看现有的变量和类型
  • format compact命令可以在窗口输入时没有多余的空格;fomat loose可以取消这个操作
  • format long可以使浮点数输出更多位的小数
  • 若一条命令太长,可以在这条命令的第一行行末输入...,然后换行继续输入后面的命令
  • 了解函数功能的5 种方式
  1. help 函数名:了解某种函数的功能表
  2. help elfum:了解多种内置函数的功能
  3. 在matlab软件右上方的搜索框也可进行搜索函数名来对函数进行了解,比help展示的要更为详细
  4. 输入函数名,再按f1可进入matlab官方解释文档了解函数
  5. 点击命令行前面的fx可以寻找函数进行了解
  • 命令行输入脚本的前几个字母再按tab键会弹出选择框进行选择,可以自动补全脚本名

3.数据类型

  • 单引号输入cahr类型,如'apple'为char类型;双引号输入string类型,"apple"为字符串类型
  • inf为正无穷,-inf为负无穷

4.函数/符号/数据操作

生成随机数

1. rand(n,m)  

若只有一个参数n,则表示生成元素处于(0,1)间的n阶矩阵

若有两个参数n和m,则表示生成元素处于(0,1)间的n行m列的矩阵

2. randi(a,b,c)

  • 若a为一个列表[x,y]

表示生成元素大小为[x,y]之间的b行c列矩阵。(若没有参数c,则矩阵为b阶矩阵)

  • 若a为一个数

表示生成元素大小为[1,a]之间的b行c列矩阵。(若没有参数c,则矩阵为b阶矩阵)

旋转/翻转矩阵

  • flipud(m):把矩阵m按照横向对称轴进行上下翻转
  • fliplr(m):把矩阵m按照竖向对称轴进行左右翻转
  • flip(m)
  1. 如果m为行向量那么进行左右翻转,列向量则进行上下翻转
  2. 如果m为矩阵,那么只会将m的每列单独进行列向量的翻转。
  • rot90(m):把矩阵逆时针旋转90°

min(m):取m每列的最小值

min(m'):取m每行的最小值

prod(m):求m每列的乘积

prod(m'):求m每行的乘积

cumsum(m):每一列单独进行逐渐累加

cumsum(m'):每一行单独进行逐渐累加

cumprod(m):每一列单独进行逐渐累乘

cumprod(m'):每一行单独进行逐渐累乘

cummax(m):每一列单独遍历寻找当前最大值(意思是,比如第一列进行遍历时,第一行最大值是?继续遍历到第一列第二行的数,最大值是?继续遍历到第一列的第三行的数,目前最大的数是?......)

cummax(m'):每一行单独寻找目前最大值

cummin(m):每一列单独遍历寻找当前最小值

cummin(m'):每一行单独遍历寻找当前最小值

  • repmat(A,x,y):以矩阵为单位进行重复,重复x行,y列
  • repelem(A,x,y):以矩阵A的每个元素为单位进行重复,每个元素重复x行y列

创建行、列向量

[a,b,c,d,e...]创建行向量

[a;b;c;d;e...]创建列向量,也可[a,b,c,d,e...]'创建列向量

在这里";"的意思是换行。'的意思是矩阵转置

.'表示转置,'表示共轭转置(虚数先取共轭数,再将矩阵进行转置)。对于虚数来说,使用'和.'的效果是不一样的。

如何取行向量or列向量中的值

  • 对于行向量v(end可以代指最后一个元素的位置

v(a):取第a个元素

v([a b c d...]):取第a,b,c,d...个元素

v([a:b]):取[a,b]位置区间的元素

v([a:b c d]):取[a,b]位置区间,还有第c个和第d个位置的元素

总的来说就是v([......])取元素操作,位置索引可以是数字也可以是切片表示,也可以是二者的组合

如何取矩阵中的值

  1. 两个参数:若m为一个矩阵。则可以用m( _ , _ )方式对m中的元素进行访问。前面的参数代表行,后面的参数代表列。每个参数的填写方式和访问行(列)向量的方式是一样的
  2. 一个参数:

从左到右,从上到下对元素的位置进行编号。在下图中v(9)的值就是-1 

注意: 获取矩阵元素时,索引必须为正整数或者是和矩阵形状相同的逻辑矩阵

更改矩阵的值

m(1,:)=[1,2,3]  正确

m(1,:)=[1;2;3]  正确

m(1:2,1:2)=[7,8;9,10] 正确

m(1:2,1:2)=[7,8,9,10] 错误

改变一行或一列的值时,保证等号两边的元素个数相同就可以。

改变非一维矩阵时,赋值的内容的形状要和所更改的部分矩阵形状保持一致。元素数量也要一致

特例:如果等号右边为一个数字,那么不管被更改部分的形状和元素个数是什么样子,都是可以的

如何对矩阵的对角线,次对角线以及次次对角线进行赋值

diag(v)表示生成对角线为v的矩阵。(v为行向量或列向量)

diag(v,-1)表示生成次对角线为v的矩阵(主对角线下面的一条对角线)

diag(v,1)表示生成上次对角线为v的矩阵(主对角线上面的一条对角线)

diag(v,-2)表示生成次次对角线为v的矩阵(主对角线下下面的一条对角线)

空矩阵

E=[]可以创建空矩阵,空矩阵可以和任何一个矩阵粘合。

nan(x,0):生成x行0列的空矩阵

nan(0,y):生成0行y列的空矩阵

矩阵横向拼接/纵向拼接

用[]来对矩阵进行拼接

矩阵之间用逗号()或空格( )进行连接都表示横向拼接,要求矩阵之间的行数相同才能进行横向拼接

分号()表示纵向拼接,要求矩阵之间的列数相同才能进行纵向拼接

 

diff()函数

diff(x,n,dim)

x为行向量或者列向量时。沿着行或列的方向进行n次差分。

x为矩阵时,沿着dim指定的维度进行n次差分。(dim为1时是在列上进行差分,dim为2时在行上进行差分)

其他操作or函数 

  • i和j可以用来表示虚数。如果自命名变量中i和j,如i=2,那么2+3*i不是虚数,而是计算出来的数,这时j可以用来表示虚数,如果j也成为了变量名。那么可以这样表示虚数:2+3*1i。(因为1i和1j永远不会成为一个自命名变量的名字,是绝对安全的。2i,3i....都是一样的)
  • rng()抛种子,如果括号中输入小数,那么matlab会自动处理为整数。如rng(0.3)和rng(0)的效果一样
  • eye(n)生成n维单位矩阵 
  • 不等于表示为~=;~表示否定
  • sign()返回数的符号。NAN和0返回值为0,正数为1,负数为-1。
  • nthroot(x,y)表示求x的y次根。nthroot(8,3)的结果为2
  • deg2rad()度数转换为弧度;rad2deg()弧度转换为度数。
  • linspace(start,end,num)返回从start到end,个数为num的等差数列
  • logspace(start,end,num)返回 从10^{start}10^{end},个数为num的等比数列
  • 在matlab中,切片法表示的索引为,start:step:end。step默认值为1(在python中是start:end:step)
  • length(m):返回m矩阵行数和列数中较大的数
  • size(m):返回矩阵m的行数和列数
  • numel(m):返回矩阵m的元素个数
  • reshape(m,2,6):将矩阵的形状变为2行6列
  • find(w>0):找到w矩阵中值大于0的位置(返回的位置索引是一个数表示的,而不是行和列的组合进行表示的位置)
  • find(v):v为逻辑矩阵,返回v中真值为1的位置索引
  • find(v,2,'first'):v为逻辑矩阵,找到v矩阵中前两个真值为1的位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763090.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

修改kernel的spi驱动,cmd+addr+data时序连续以支持spiFlash的mtd设备

【背景】 新增加的spi-nvFram芯片mb85rs4mt,以支持mtd设备挂载,发现只修改jedec无法读取芯片id,以及mtd设备生成。 【目的】 linux系统下支持spi-nvFram芯片。 【排查】 结合datasheet的数据传输时序需求,用示波器查看&#xff…

SSM入门—Spring:AOP切面

目录 代理 基于XML的AOP配置 基于注解的AOP配置 代理 (帮别人做事情),在执行真正的任务之间或者之后,去完成某些事情。 比如日志,权限验证 1、静态代理:手动创建代理类 2、动态代理:自动创…

1.计算机网络体系结构

1.1 计算机网络概述 1.1.1 计算机网络的概念 计算机网络是将一个分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 1.1.2 计算机网络的组成 (1)从组成部分看&#x…

PB8-RH、PB12-LH、PB5-RH单向离合器

PB3-RH、PB3-LH、PB5-RH、PB5-LH、PB6-RH、PB6-LH、PB8-RH、PB8-LH、PB10-RH、PB10-LH、PB12-RH、PB12-LH、PB14-RH、PB14-LH单向离合器、凸轮离合器、单向轴承外环为套筒可方便与小外径的链轮、齿轮、同步带轮等一同装配,请根据箭头方向指定内环的啮合回转方向。右…

不同的二叉搜索树(简单题目+升级题目)

简单题目(只需要返回多少种): 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例: 输入:n 3 输出:5…

2023年人工智能行业研究报告

第一章 行业概况 1.1 定义和分类 人工智能(ArtificialIntelligence, AI)是一个广泛的计算机科学分支,它致力于创建和应用智能机器。在更深入的层次上,人工智能可以被理解为以下几个方面: 学习和适应:人工…

深入篇【C++】手搓模拟实现vector类(详细剖析接口底层实现原理):【200行代码实现】

深入篇【C】手搓模拟实现vector类(详细剖析接口底层实现原理)【200行代码实现】 【vector类模拟实现代码】Ⅰ.构造/析构1.vector()2.operator3.~string() Ⅱ.访问遍历1.operator[]2.begin()/end() Ⅲ.增操作1.push_back()2.insert() Ⅳ.删操作1.erase()2.pop_back()…

uniapp安卓签名证书生成,签名证书的SHA1,SHA256,MD5获取

uniapp安卓证书生成有两种方式,一种是去dcloud开发者中心生成证书,另一种是安装jre环境,自己生成证书 第一种 dcloud生成证书 去该项目对应的应用处,生成证书需要等几分钟,生成后可以查看证书信息 第二种 自己生成…

优维科技通过TMMi3级认证,软件测试能力迈上新台阶

近日,优维科技正式通过国际软件测试成熟度模型集成(TMMi)3级认证,标志着优维科技的软件测试能力、风险应对水平、产品质量管理水平、测试技术创新能力迈上新台阶,获得国际权威组织认可。 TMMi全称为Test Maturity Mode…

反向传播笔录

文章目录 反向传播概述反向传播-前向过程反向传播-反向过程反向传播概述 为了有效的计算梯度,我们使用反向传播。 链式法则: 给定一组neural network参数 θ \theta θ, 我们把一个training data

[JVM] 4. 运行时数据区(1)-- 概述

一、JVM整体结构回顾 类加载子系统将class文件的静态代码加载到内存中,执行引擎需要与这块内存进行交互,从而使用这些数据。 存放这块数据的内存被称为运行时数据区(Runtinme Data Area)。 一个JVM只能有一个运行时环境&#xff0…

华为机试(JAVA)真题Od【A卷+B卷】2023最新版

目录 一、机考攻略二、机考重要性三、下面,哪吒将华为OD机试真题归归类,让大家一目而了然。四、下面分享一道**“2022Q4 100分的路灯照明问题”**,提前体验一下华为OD机试的**“恐怖如斯”**。1、题目描述2、输入描述3、输出描述4、解题思路特…

二、DDL-2.表操作-创建查询

一、查询所有表 1、查询当前数据库所有表 首先进入数据库itheima: use itheima; 查看itheima数据库的所有表: show tables; ——该数据库是新建的,下面没有表 切换到sys数据库,查看sys下的所有表: 2、查询表结构、…

【FPGA】基于C5的第一个SoC工程

文章目录 前言SoC的Linux系统搭建 前言 本文是在毕业实习期间学习FPGA的SoC开发板运行全连接神经网络实例手写体的总结。 声明:本文仅作记录和操作指南,涉及到的操作会尽量细致,但是由于文件过大不会分享文件,具体软件可以自行搜…

2023年NOC决赛-加码未来编程赛项决赛模拟题-Python模拟题--卷6

第一题 题目:回文字符串是指正序(从左向右)和倒序(从右向左)读都是一样的字符串。 输入一个字符串,在只考虑字母的前提下,判断该字符串是否为回文字符串 【输入格式】输入数据只有一行,一个字符串 s 【输出格式】True 或者 False 在只考虑字母(区分大小写)的情况…

Linux5.17 Ceph应用

文章目录 计算机系统5G云计算第四章 LINUX Ceph应用一、创建 CephFS 文件系统 MDS 接口1.服务端操作2.客户端操作 二、创建 Ceph 块存储系统 RBD 接口三、创建 Ceph 对象存储系统 RGW 接口四、OSD 故障模拟与恢复 计算机系统 5G云计算 第四章 LINUX Ceph应用 一、创建 CephF…

学会快速排序库函数qsort的使用以及实现

qsort的使用使用细节一完成代码 qsort的实现&#xff08;用冒泡排序&#xff09;写法一写法二完整代码 qsort的使用 qsort函数的官方介绍: 点这里 qsort函数需要包含头文件<stdlib.h> qsort函数有四个参数&#xff0c;逐一介绍 base&#xff1a;指向数组中要排序的第一…

趁同事上厕所的时间,看完了 Dubbo SPI 的源码,瞬间觉得 JDK SPI 不香了

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;独角兽企业的Java开发工程师&#xff0c;CSDN博客专家&#xff0c;阿里云专家博主&#x1f4d5;系列专栏&#xff1a;Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码…

大数据平台测试-git常用操作(白盒测试基础)

一、前言 学习Git是非常有价值和重要的&#xff0c;无论是一个个人开发者还是在团队中进行协作开发。以下是一些学习Git的原因&#xff1a; 版本控制&#xff1a;Git是目前最流行的分布式版本控制系统&#xff0c;可以帮助你跟踪、管理和控制代码的版本。你可以轻松地回退到先…

gee架设教程

1:GameCenter 设置 1.1服务器控制 1.2 账号 1.3.1 配置向导 - 基本设置 1.3.2 配置向导 - 登录网关 1.3.3 配置向导 - 角色网关 1.3.4 配置向导 - 游戏网关 1.3.5 配置向导 - 登录服务器 1.3.6 配置向导 - 数据库服务器 1.3.7 配置向导 - 日志服务器 1.3.8 配置向导 - 主服务器…