MATLAB入门:基本操作与矩阵运算

2023-05-16

matlab基本操作与矩阵运算

  • 基本操作
    • 把matlab当作计算器使用
    • 变量
          • 变量类型
          • 避免使用与函数、脚本同名的变量
    • 格式控制
  • 矩阵运算
    • 矩阵的定义
        • 向量乘法
    • 矩阵索引
    • 使用`:`创建向量
        • 使用`:`索引
    • 矩阵串联
    • 矩阵运算
    • 一些特殊矩阵
    • 一些矩阵相关的函数
  • 习题

基本操作


把matlab当作计算器使用

把matlab当计算器使用基本符合常识,不过多赘述(下同,着重记录与常识有出入的地方)。

需要注意的有:

  • =表示赋值,判断是否相等用==
  • matlab中没有ln( )函数,log( )默认以e为底;
  • matlab中要表示自然对数e,用exp(1)表示即可;表示以e为底数的指数函数用exp(n)(e的n次方)

变量

  • 与一般语言不同,matlab对于变量可以直接使用,不需要提前声明;
  • matlab变量大小写敏感;
  • matlab中变量命名规则与c一致;
  • matlab已有的保留变量不适合做变量名,调用iskeyword命令查看。

课件问题:问题

  1. matlab大小写敏感,大写与小写有区别
  2. matlab的变量不能以数字开头
变量类型

对于matlab的变量类型可以是如下这些:
变量类型
对于数值变量,不显示指明变量类型,默认double类型,就数模而言基本足够。

避免使用与函数、脚本同名的变量

若出现与函数同名的变量名,调用时优先当作变量名处理。

cos='This string.';
cos(8)					% 对字符串进行索引取值,得到'r'

出现这种情况可以使用clear变量名 清除该变量,即clear cos
便可正常使用cos( )函数。

顺带一提
clear:清除workspace内所有变量(即清空存储区)
clear <name>:清除name变量
clc:清空终端窗口(变量依然存在)


格式控制

一些常用的命令:

  • 紧凑显示格式:format compact
  • 宽松显示格式:format loose
  • 数据高精度显示:format long
  • 数据低精度显示:format short
  • 以分数显示:format rat

值得一提的是,无论以分数显示还是以小数显示,其在matlab内部存储的值都是一样的。
另外需要注意:

  1. 如果原数值是无理数,显示的分数是在一定误差范围内的有理分式近似值
  2. 可以通过R = rat(x)将小数x以分数的形式赋值给R该分数实际上是一个字符串,也就是说R储存的将是一个字符串
  • 在一行命令后紧接着;,使结果不显示在终端窗口中

一点补充
who:显示工作区内所有的变量
whos:显示工作区内所有变量的详细信息
whos <name>:显示变量name的详细信息



矩阵运算


矩阵的定义

区分vectormatrixvector指向量,matrix指矩阵,而array则是两者的统称。

,空格用来间隔列column;用来间隔行row

a = [1 2 3];		%这是一个行向量
b = [4, 5, 6];		%这也是一个行向量
c = [7; 8; 9];		%这是一个列向量

向量乘法

行向量乘列向量结果是一个数,而列向量乘行向量结果是一个矩阵:

>> a=[1 4 6];
>> b=[3;4;8];
>> a*b			% 行向量乘列向量
ans =
    67
>> b*a			% 列向量乘行向量
ans =
     3    12    18
     4    16    24
     8    32    48


矩阵索引

可以有多种索引方式,普通的a(x, y) 即第x行,第y列;
a(n) 即从第一列开始依次1、2、3…;如图
矩阵索引

比较特殊的索引:
矩阵索引
特别注意A([1 3 5])A([1 3; 1 3])A([1 3], [1 3])三者的区别

>> A=[1 21 6; 5 17 9; 31 2 7];
>> A([1 3 5])
ans =
     1    31    17
>> A([1 3; 1 3])
ans =
     1    31
     1    31
>> A([1 3], [1 3])
ans =
     1     6
    31     7


使用:创建向量

  • x = j:k 创建一个包含元素 [j,j+1,j+2,...,j+m] 的单位间距向量 x
  • x = j:i:k 创建一个j为起点,k为终点,步长为 i 的向量

在这里插入图片描述
str = 'a':2:'z'将给出一个字符串:'acdfh....z'赋值给str

使用:索引

使用A(3,:)索引矩阵A的整个第三行
A(3,:)=[]使矩阵A的整个第三行等于空矩阵:
在这里插入图片描述

矩阵串联

两个行数相同的矩阵可以通过,空格横向串联。即[A,B][A B]
矩阵串联

注意A+B并不能实现矩阵串联,而是矩阵加法

两个列数相同的矩阵可以通过;纵向串联F=[[A,B];C;D]实现下图:矩阵串联

矩阵运算

  • 矩阵加减运算均为对应元素的加减
  • 矩阵乘除运算区分.*,./*,/
    .*为对应元素相乘,而普通的*则为矩阵乘法。
  • 矩阵的乘方^与矩阵乘除法类似,.^为对应元素的乘方。
  • 矩阵转置',即为现代中的转置。
% 转置的一点运用
>> M=rand(4)
M =
    0.8147    0.6324    0.9575    0.9572
    0.9058    0.0975    0.9649    0.4854
    0.1270    0.2785    0.1576    0.8003
    0.9134    0.5469    0.9706    0.1419
>> mean(M)
ans =
    0.6902    0.3888    0.7627    0.5962
>> mean(M')'
ans =
    0.8404
    0.6134
    0.3408
    0.6432
% 直接使用 mean( ) 函数是对每一列求平均数(下面的内容),
% 而有时候需要对每一列求平均数,则可以将 M 转置后求平均
% 再转置为一列,即对应于原来矩阵每一行的平均数。


一些特殊矩阵

特殊矩阵

  • linspace(x,y,n):线性间隔的向量。从x到y均等的给出n个数;
    linspace(x,y):从x到y均等的给出100个数。
  • logspace(a,b):在 10a 和10b之间生成50个对数间距点;
    logspace(a,b,n):在10a和10b之间生成n个对数间距点;
    注意不是均分
% logspace()不是均分
>> logspace(1,2,3)
ans =
   10.0000   31.6228  100.0000
  • eye(n):n×n单位矩阵
  • diag():对角矩阵
  • rand():均匀分布的随机数(服从[0,1]上均匀分布)


一些矩阵相关的函数

在这里插入图片描述

  • max(A):给出每一列中最大的数
  • max(max(A)):则可给出整个矩阵最大值
% max(A):给出每一列中最大的数
>> A=[8 1 6;3 5 7;4 9 2]
A =
     8     1     6
     3     5     7
     4     9     2
>> max(A)
ans =
     8     9     7
>> max(max(A))
ans =
     9
  • 左边一栏均类似给出每一列中xx,mean():平均数

对于右边一栏

  • sort(A):对于每一列,从小到大排序。若只有一行,则对行从小到大排
  • sortrows(A):以行为单位(每行的数固定),按照第一列的数从小到大排
>> A=[8 1 6;3 5 7;4 9 2]
A =
     8     1     6
     3     5     7
     4     9     2
>> sort(A)			% 对每一列从小到大排序
ans =
     3     1     2
     4     5     6
     8     9     7
>> sortrows(A)		% 以行为单位,按照每行第一个数的大小对行排序
ans =
     3     5     7
     4     9     2
     8     1     6
     
>> a=[4 6 2];
>> sort(a)			% 若只有一行,则sort对行从小到大排
ans =
     2     4     6

  • size(A):给出行宽和列宽
  • length(A):将A的各个维度的长度作比较,返回最大的那一个
>> A=rand(3,5)
A =
    0.4218    0.9595    0.8491    0.7577    0.6555
    0.9157    0.6557    0.9340    0.7431    0.1712
    0.7922    0.0357    0.6787    0.3922    0.7060
>> size(A)		%给出行宽和列宽
ans =
     3     5
>> length(A)	%给出行宽
ans =
     5
  • find(A==x):给出矩阵A中等于x的元素位置(以列的形式呈现)
>> A=magic(3)		% 给出一个3x3的magic矩阵
A =
     8     1     6
     3     5     7
     4     9     2
>> A(3,2)=7;		% 将(3,2)位置处的元素赋值为7
>> find(A==7)		% 给出矩阵中等于7的元素位置
ans =
     6
     8

使用 strlength 而非 length 来确定字符串数组的每个元素中的字符数量。在这里插入图片描述
length(str)结果为3




习题

练习1

%%
cos(sqrt((1+2+3+4)^3/5))
%sqrt( )是matlab内置的平方根函数

%%
sin(sqrt(pi))+log(tan(1))
%matlab中没有ln( )函数,log( )默认以e为底

%%
2^(3.5*1.7)

%%
exp(sin(10))
%matlab中要表示自然对数e,用exp(1)表示即可;表示以e为底数的指数函数用exp(n)(e的n次方)

练习2

format rat;         %调整成分数显示
ans=3/13+4/14+5/15

format long;        %调整成高精度小数显示
ans=3/13+4/14+5/15



以上内容为个人笔记,部分图片来源于郭老师课件或课程截图。
笔记汇总:MATLAB基础教程
课程视频:https://www.bilibili.com/video/BV1DA411Y7bN
课件下载:MATLAB教程
郭彦甫老师的YouTube主页:@Yanfu Kuo
原视频:https://www.youtube.com/watch?v=KHFZLkm9qs0&t=8s

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

MATLAB入门:基本操作与矩阵运算 的相关文章

  • Python1+X(中级)证书培训笔记(上)

    最近参加了一个Python1 43 X的证书培训 xff0c 然后以下是整理的学习笔记 xff0c 证书涵盖的知识点有三大块 分别是数据库操作 WEB开发 网络爬虫分析下面将详细分别讲解 阅读必看 本博客没有安装的讲解 xff0c 更多是如
  • 初识Python自动化运维(一)

    系统模块 系统模块主要是使用psutil库 xff0c 后面会主要写这个介绍一下 psutil 是一个跨平台库 xff0c 能够轻松实现获取系统运行的进程和系统利用率 xff08 包括cpu 磁盘 网络等信息 xff09 常用psutil监
  • 二叉树先中后序遍历(递归非递归)

    先序遍历 先序遍历也叫先根遍历 xff0c 采用先访问根节点 xff0c 再访问左节点 xff0c 最后访问右节点 递归实现 span class token comment Definition for a binary tree nod
  • 数据结构与算法二 ---链表

    前言 这一节是链表 xff0c 这是为了填坑 xff0c 自己说过的话 xff0c 一定要做到 什么是链表 相比上一章的数组 xff0c 链表是一种稍微麻烦亿丢丢的数据结构 如图 xff1a 数组需要一块连续的存储空间 xff0c 对内存要
  • 如何在Linux中的命令行中列出和启动VirtualBox VM?

    VirtualBox is a nice open source virtual machine software It works nicely on Linux and is supported by many Linux distro
  • 数据结构与算法---(最小栈)

    最小栈 题目需求 xff1a 实现一个这样的栈 xff0c 这个栈除了可以进行普通的push pop操作以外 xff0c 还可以进行getMin的操作 xff0c getMin方法被调用后 xff0c 会返回当前栈的最小值 栈里面存放的都是
  • JAVA集合三大类

    JAVA集合三大类 xff1a 1 set set集合无法记住添加的顺序 xff0c 因此set集合中的元素不能重复 2 list xff1a 与数组类似 xff0c list集合可以记住每次添加元素的顺序 xff0c 因此可以根据元素的索
  • 计算机网络词汇解释(二)——交互、 点到点、端到端

    计算机网络词汇解释 xff08 二 xff09 交互 点到点 端到端 本篇文章试图以 xff1a 是什么 xff1f 为什么 xff1f 怎么样 xff1f 三个层次来解释词汇 xff0c 并尽量实现通信的哲学 你传达的复杂信息 xff0c
  • java 字符串 提取 或 去除字母字符串

    提取 linStr span class token operator 61 span linStr span class token punctuation span span class token function replaceAl
  • 数字图像处理---自适应中值滤波实验(MATLAB实现含源码)

    自适应中值滤波实验 xff08 MATLAB实现 xff09 实验目的 1 掌握中值滤波以及自适应中值滤波器的原理以及滤波过程 2 掌握自适应中值滤波的算法设计 3 进一步熟悉MATLAB编程 实验原理 中值滤波的思想就是比较一定领域内的像
  • SpringBoot拦截器执行后,Controller层不执行

    问题描述 xff1a 请求在SpringBoot拦截器中执行后 xff0c 在Controller层不执行 xff0c 前端错误码400 原因分析 xff1a ServletRequest 中通过流获取参数 xff08 getInputSt
  • 一位工作了10年的C++程序员总结出这些忠告

    1 可以考虑先学习C 大多数时候 xff0c 我们学习语言的目的 xff0c 不是为了成为一个语言专家 xff0c 而是希望成为一个解决问题的专家 做一个有用的程序员 xff0c 做一个赚钱的程序员 我们的价值 xff0c 将体现在客户价值
  • 1.6配置通过ftp进行文件操作

    ftp是文件传输的internet标准 xff0c 主要功能是向用户提供本地和远程主机之间的文件传输 版本升级 日志下载 使用c s结构 实验内容 xff1a 模拟企业网络 xff0c pc1访问ftp server 做上传下载操作 出于安
  • 数据库原理及应用复习资料

    单选 xff08 无解析 xff09 xff08 A xff09 是对数据库中全部数据的逻辑结构和特征的描述 A 模式 B 外模式 C 内模式 D 视图 xff08 B xff09 是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描
  • ae 渲染选项_好的MPlayer选项,以提高视频渲染质量

    ae 渲染选项 MPlayer has lots options for video rendering and filtering Any suggestions on good MPlayer options that improve
  • Nuxt.js 概述 安装 目录结构说明

    什么是SEO SEO xff1a 搜索引擎优化 xff08 Search Engine Optimization xff09 通过各种技术 xff08 手段 xff09 来确保 xff0c 我们的Web内容被搜索引擎最大化收录 xff0c
  • Nuxt.js路由

    路由 路由概述 Nuxt js 依据 pages 目录结构自动生成 vue router 模块的路由配置 要在页面之间切换路由 xff0c 我们建议使用 nuxt link 标签 基础路由 自动生成基础路由规则 情况1 xff1a 访问路径
  • Nuxt.js 视图

    视图 默认模板 定制化默认的 html 模板 xff0c 只需要在应用根目录下创建一个 app html 的文件 默认模板 xff1a span class token doctype span class token punctuatio
  • Nuxt.js整合axios

    整合 axios 默认整合 在构建项目时 xff0c 如果选择axios组件 xff0c nuxt js将自动与axios进行整合 手动整合 步骤1 xff1a package json有axios的版本 34 dependencies 3
  • Vuex 状态树

    根模块数据操作 步骤一 xff1a 创建 store index js 添加一个 counter变量 xff0c 并可以继续累加操作 export const state 61 61 gt counter 0 export const mu

随机推荐

  • Nuxt.js查询学生列表案例

    查询所有的班级 xff1a 后端 父工程pom文件 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt project xmlns 61 34 http maven apach
  • 大数据面试题

    Hive理论知识汇总 1 Hive和数据库比较 Hive 和数据库除了拥有类似的查询语言 xff0c 再无类似之处 1 xff09 数据存储位置 Hive 存储在 HDFS 数据库将数据保存在块设备或者本地文件系统中 2 xff09 数据更
  • MyBatis Plus

    概述 简介 MyBatis Plus xff08 简称 MP xff09 是一个 MyBatis 的增强工具 xff0c 在 MyBatis 的基础上只做增强不做改变 xff0c 为简化开发 提高效率而生 特点 无侵入 xff1a 只做增强
  • MybatisPlus--QueryWrapper

    QueryWrapper wrapper介绍 Wrapper xff1a 条件构造抽象类 xff0c 最顶端父类 AbstractWrapper xff1a 用于查询条件封装 xff0c 生成 sql 的 where 条件 QueryWra
  • 大数据导论题库

    选择题 1 下面哪个程序负责 HDFS数据存储 C A NameNode B Jobtracker C Datanode D secondaryNameNode 2 HDfS 中的 block 默认保存几份 A A 3份 B 2 份 C 1
  • Oracle Linux7.8 下离线 一键静默安装Oracle12c

    目录 安装前的准备最小安装OracleLinux7 8 xff08 centos7 8一样 xff09 安装oracle需要的依赖包 准备Oracle安装包准备一键安装脚本 并执行脚本使用安装前配置 问题及解决方法 xff1a 错误码ORA
  • MybatisPlus-插件机制-乐观锁-逻辑删除-通用service

    插件机制 自动填充 项目中经常会遇到一些数据 xff0c 每次都使用相同的方式填充 xff0c 例如记录的创建时间 xff0c 更新时间等 我们可以使用MyBatis Plus的自动填充功能 xff0c 完成这些字段的赋值工作 原理 实现元
  • 畅购商城项目--(用户模块+用户注册【用户名占用】)

    搭建环境 4 1 1 后端web服务 xff1a changgou4 service web 修改pom xml文档 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt pro
  • Mysql对于列中存储键值对数据的查询

    对于键值对数据的查询 为了方便查看 xff0c 将其称之为A表 A表 xff1a 可以看到A表中的列有 id inquiry id data key data value date key列中的各个字段对应的data value中的各个数据
  • PathVariable注解的用法以及报错

    今天碰见个很奇怪的问题 xff0c 因为之前在学校没怎么用过 64 PathVariable这个注解 xff0c 但是postman测试时并没有请求到 xff0c 具体如下 接口就是一个简单的查询详情 xff0c 而当我请求postman的
  • 关于@PreAuthorize注解的使用场景

    作用 64 PreAuthorize 能够在执行方法之前进行权限的认证 xff0c 支持Spring EL表达式 xff0c 基于方法注解和权限解决方案 xff0c 并且只有当 64 EnableGlobalMethodSecurity p
  • 获取 当前时间的前五天凌晨0点的时间

    公司今天提到的需求是 xff1a 每日凌晨两点 xff0c 调用方法 xff0c 方法的内容是 xff1a 拉取当前时间的前五天的0点的消息聊天记录 在网上查了好久才找到 xff0c 现在奉上代码 xff1a span class toke
  • 查询 按照 指定时间的前一天的数据

    需求 xff1a 查询按照指定时间的前一天的数据 xff0c 举个例子 xff1a 传入2023 2 27 xff0c 需要获取到2023 2 26 的数据 xff0c 如果这一天没有数据 xff0c 那就需要往前找 xff0c 直到找不到
  • 关于limit的使用场景

    什么情况下使用 limit 1呢 xff1f 当我们写sql语句的时候需要进行全表扫描 xff0c 前提我们已经确认返回的结果只有一条数据的时候 xff0c 使用limit 1 xff0c 因为使用limit 1 之后 xff0c 在查询过
  • 【STM32多级界面】-LCD结构体多级图形界面框架

    STM32多级界面搭建 在实际的项目之中 xff0c 需要用单片机在LCD OLED中搭建一个3级的图形界面 本文的工程文件我将上次传到百度网盘 xff0c 链接在最后的部分 STM32多级界面搭建一 方案选择二 实现效果三 程序设计3 1
  • ubuntu20.04系统安装u盘制作方法

    1 下载UltraISO软碟通 xff0c 下载Ubuntu20 04 2 打卡UltraISO xff0c 如下 3 加载Ubuntu20 04系统iso文件 文件 gt 打开 xff0c 如下 4 点击 启动 gt 写入硬盘映像 结果如
  • vue和react相同点_我试图在React,Unity,Godot,Construct,Game Maker和Phaser中制作相同的2D游戏原型。 这是我发现的。...

    vue和react相同点 I 39 m a tabletop game developer In designing a new card game I decided to build a digital prototype to hel
  • java发送Http请求(获取响应cookie、重定向)

    1 正常的发送Http请求 xff0c 获取返回值 xff08 json格式 xff09 span class token comment 引入的相关包 import org apache http HttpEntity import or
  • MATLAB基础教程-台大郭彦甫-学习笔记

    MATLAB基础教程 台大郭彦甫 学习笔记 最近在跟着郭彦甫老师的教程学matlab xff0c 刚开始用OneNote整理了一些笔记 郭彦甫老师的课讲的超级棒 xff0c 个人认为目前各平台上最好的matlab入门视频 但是2015年的课
  • MATLAB入门:基本操作与矩阵运算

    matlab基本操作与矩阵运算 基本操作把matlab当作计算器使用变量变量类型避免使用与函数 脚本同名的变量 格式控制 矩阵运算矩阵的定义向量乘法 矩阵索引使用 96 96 创建向量使用 96 96 索引 矩阵串联矩阵运算一些特殊矩阵一些