【MATLAB】 01 基本操作与数组输入

这篇具有很好参考价值的文章主要介绍了【MATLAB】 01 基本操作与数组输入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01 基本操作与数组输入

Intro

认识 MATLAB 操作界面

【MATLAB】 01 基本操作与数组输入

可以通过 Layout 选择需要显示的窗口及布局

使用 MATLAB 编程有两种方法

  • 命令行 (命令窗口)
  • 脚本 (.m 文件)

像使用计算器一样使用 MATLAB

  • 运算符 +,-,*,/,^

  • 计算的结果 以 ans 显示

【MATLAB】 01 基本操作与数组输入

  • 优先级

    • 同一优先级从左到右
    • 优先级为
      1. Parenthesis (())
      2. Power (^)
      3. Multiplication and division (*,/)
      4. Addition and subtraction (+,-)

Exercise

Calculate:
cos ⁡ ( ( 1 + 2 + 3 + 4 ) 3 5 ) sin ⁡ ( π ) + ln ⁡ ( tan ⁡ ( 1 ) ) 2 3.5 × 1.7 e sin ⁡ ( 10 ) \begin{aligned} &\cos \left(\sqrt{\frac{(1+2+3+4)^{3}}{5}}\right) \\ \\ &\sin (\sqrt{\pi})+\ln (\tan (1)) \\ \\ &2^{3.5 \times 1.7} \\ \\ &e^{\sin (10)} \end{aligned} cos(5(1+2+3+4)3 )sin(π )+ln(tan(1))23.5×1.7esin(10)

嵌套函数

sin(cos(pi))

与下方等价

cos(pi)
sin(ans)

多行代码 可以合为单行代码执行

MATLAB 先计算cos(pi) 并将计算结果储存到变量 ans
在计算 sin(ans) 时, 与 sin(cos(pi)) 等价

变量

  • 变量在赋值前, 不需要先声明
  • 单等号 = 是赋值运算符(Assignment Operator)
    • 将等号右边的值 赋值给等号左边
  • 大小写敏感
  • 变量命名不能以数字开始, 但可以包含数字

数据类型

  • logical
  • char
  • numeric
    • int8, int16, int32, int64, uint8, uint16, uint32, uint64
    • single
    • double
  • cell
  • struct
whowhos

使用命令 who 可以查看当前变量
使用命令 whos 可以查看当前变量及其数据类型

>> a = 5

a =

     5

>> a * 6

ans =

    30

>> who

Your variables are:

a    ans  

>> whos
  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              
  ans       1x1                 8  double  

特殊变量与常量

  • ans
  • i,j : complex number
  • Inf : ∞ \infty
  • eps : 2.2207 e − 016 2.2207e-016 2.2207e016
  • NaN : not a number
  • pi : π \pi π
>> x = 1/0

x =

   Inf

>> x = inf / inf

x =

   NaN

以上均是关键字
使用命令 iskeyword 显示关键字

>> iskeyword

ans =

  20×1 cell array

    {'break'     }
    {'case'      }
    {'catch'     }
    {'classdef'  }
    {'continue'  }
    {'else'      }
    {'elseif'    }
    {'end'       }
    {'for'       }
    {'function'  }
    {'global'    }
    {'if'        }
    {'otherwise' }
    {'parfor'    }
    {'persistent'}
    {'return'    }
    {'spmd'      }
    {'switch'    }
    {'try'       }
    {'while'     }

标识符查找顺序

  1. Variable 变量
  2. Built-in function 内置函数
  3. Subfunction 子函数
  4. Private function 私有函数
    1. MEX-file
    2. P-file
    3. M-file

例如:

>> cos='This String.';
>> cos(8) % 字符向量的第8个元素

ans =

    'r'

>> clear % 清除全部变量
>> cos(8)

ans =

   -0.1455

注意: 不要使用 内置函数 或 关键字 作为变量名

指定数字格式

默认数字格式为 short 显示小数点后四位

使用 format [style] 指定数字格式

Style Result Example
short Short, fixed-decimal format with 4 digits after the decimal point. 3.1416
long Long, fixed-decimal format with 15 digits after the decimal point for double values, and 7 digits after the decimal point for single values. 3.141592653589793
shortE Short scientific notation with 4 digits after the decimal point. 3.1416e+00
longE Long scientific notation with 15 digits after the decimal point for double values, and 7 digits after the decimal point for single values. 3.141592653589793e+00
bank Currency format with 2 digits after the decimal point. 3.14
hex Hexadecimal representation of a binary double-precision number. 400921fb54442d18
rat Ratio of small integers. 以有理数形式显示结果 355/113

命令行下使用

观察以下两个命令的不同

>> a = 10
>> b = 10;

命令后加 ; 表示不向终端显示结果

与其他终端相同, 使用 ↑ \uparrow 快速输入之前的命令

一些常用的命令

  • clc 清空命令窗口
  • clear 清除工作区的所有变量
    • 谨慎使用, 建议只删除不需要的变量 clear [variable]
  • who 查看工作区的变量
  • whos 查看工作区变量的详细信息

数组输入

Array (Vector and Matrix) Input

行向量 Row vector

>> a = [1 2 3 4]

列向量 Column vector

>> b = [1; 2; 3; 4]

>> a * b

ans =

    30

>> b * a

ans =

     1     2     3     4
     2     4     6     8
     3     6     9    12
     4     8    12    16
  • Key in the following matrix in MATLAB

A = [ 1 21 6 5 17 9 31 2 7 ] A= \begin{bmatrix} 1&21&6\\ 5&17&9\\ 31&2&7 \end{bmatrix} A= 153121172697

>> A = [1 21 6; 5 17 9; 31 2 7]

A =

     1    21     6
     5    17     9
    31     2     7

使用下标获取矩阵中的元素

注意: 与其他编程语言中不同, MATLAB 中向量的下标从 1 开始

>> A = [1 21 6; 5 17 9; 31 2 7]

A =

     1    21     6
     5    17     9
    31     2     7

>> A(8)

ans =

     9

>> A([1 3 5])

ans =

     1    31    17

>> A([1 3; 1 3])

ans =

     1    31
     1    31

>> A(3,2)

ans =

     2

>> A([1 3], [1 3])

ans =

     1     6
    31     7

观察以上命令运行的结果 可以看出 MATLAB 获取矩阵中元素的方法

  • 没有逗号
    • A([index]) 从上往下, 从左往右 对元素从 1 开始标号
    • A([1 3 5]) 取出下标为 1 3 5 的元素, 结果为数组
    • A([1 3; 1 3]) 取出下标为 1 3 的元素 放在矩阵的第一行, 再取出下标为 1 3 的元素 放在矩阵的第二行

  • 有逗号
    • A([row], [column]) 根据(行,列)坐标取出元素
    • A([1 3], [1 3]) 取出 ([行 行], [列 列]) 交点上的元素 放入矩阵, 也就是 第 1, 3 行 与 第 1,3 列 交点上的元素

Exercise

完成以下赋值
A = [ 1 21 6 5 17 9 31 2 7 ] ⟹ [ 1 76 6 5 17 9 31 0 7 ] ⟹ [ 1 0 0 5 0 0 31 0 7 ] ⟹ [ 1 0 0 5 0 0 ] A=\left[\begin{array}{ccc} 1 & 21 & 6 \\ 5 & 17 & 9 \\ 31 & 2 & 7 \end{array}\right] \Longrightarrow\left[\begin{array}{ccc} 1 & 76 & 6 \\ 5 & 17 & 9 \\ 31 & 0 & 7 \end{array}\right]\Longrightarrow\left[\begin{array}{ccc} 1 & 0 & 0 \\ 5 & 0 & 0 \\ 31 & 0 & 7 \end{array}\right]\Longrightarrow \left[\begin{array}{lll} 1 & 0 & 0 \\ 5 & 0 & 0 \end{array}\right] A= 153121172697 153176170697 1531000007 [150000]

提示 请先看完下面的冒号运算符

A(3,:)表示选中第三列的全部
A(3,:)=[]让第三列等于一个空向量, 就是删除第三列

冒号运算符

  • 如果想要创建这样的数组: A = [ 1 2 3 ⋯ 100 ] A = \begin{bmatrix}1&2&3&\cdots&100\end{bmatrix} A=[123100]

  • 可以使用冒号运算符(Colon Operator)

  • 语法
    j : k ⟹ [ j ,   j + 1 ,   j + 2 , ⋯   ,   j + m ] j : i : k ⟹ [ j ,   j + i ,   j + 2 i , ⋯   , j + m × i ] \begin{array}{l} j:k&\Longrightarrow&[j,\ j+1,\ j+2,\cdots,\ j+m]\\ j:i:k&\Longrightarrow&[j,\ j+i,\ j+2i,\cdots,j+m\times i] \end{array} j:kj:i:k[j, j+1, j+2,, j+m][j, j+i, j+2i,,j+m×i]
    start:length:end 未指定步长时, 默认步长为 1

A = [ 1 2 3 ⋯ 100 ] A = \begin{bmatrix}1&2&3&\cdots&100\end{bmatrix} A=[123100] 可以使用 A=[1:100] 创建

矩阵拼接

相同形状的矩阵可以连接在一起

例如:

>> A=[1 2; 3 4];
>> B=[9 9; 9 9];
>> F=[A B]

F =

     1     2     9     9
     3     4     9     9

>> F=[A; B]

F =

     1     2
     3     4
     9     9
     9     9

矩阵运算

  • 可以用在矩阵上的运算符 : +,-,*,/,^,.,'

对以下矩阵:
A = [ 1 2 3 4 5 4 9 8 7 ] B = [ 3 3 3 2 4 9 1 3 1 ] a = 2 A=\left[\begin{array}{lll} 1 & 2 & 3 \\ 4 & 5 & 4 \\ 9 & 8 & 7 \end{array}\right] \quad B=\left[\begin{array}{lll} 3 & 3 & 3 \\ 2 & 4 & 9 \\ 1 & 3 & 1 \end{array}\right] \quad a=2 A= 149258347 B= 321343391 a=2
做如下运算:

>> A

A =

     1     2     3
     4     5     4
     9     8     7

>> B

B =

     3     3     3
     2     4     9
     1     3     1

>> a

a =

     2

>> A+a

ans =

     3     4     5
     6     7     6
    11    10     9

>> A/a

ans =

    0.5000    1.0000    1.5000
    2.0000    2.5000    2.0000
    4.5000    4.0000    3.5000

>> A./a

ans =

    0.5000    1.0000    1.5000
    2.0000    2.5000    2.0000
    4.5000    4.0000    3.5000

>> A^a

ans =

    36    36    32
    60    65    60
   104   114   108

>> A.^a

ans =

     1     4     9
    16    25    16
    81    64    49

>> A'

ans =

     1     4     9
     2     5     8
     3     4     7

>> A+B

ans =

     4     5     6
     6     9    13
    10    11     8

>> A*B

ans =

    10    20    24
    26    44    61
    50    80   106

>> A.*B

ans =

     3     6     9
     8    20    36
     9    24     7

>> A/B

ans =

    0.0714    0.2857    0.2143
    1.1667         0    0.5000
    3.2619   -0.2857   -0.2143

>> A./B

ans =

    0.3333    0.6667    1.0000
    2.0000    1.2500    0.4444
    9.0000    2.6667    7.0000

.加上运算符, 表示矩阵对应元素间的运算 而不是矩阵之间的运算
'表示对矩阵求转置

注意: 矩阵不能相除, 这里矩阵间的除法运算 与 A × B − 1 A\times B^{-1} A×B1 的结果大概相等
也就是表示对一个空间, 先进行 A A A 线性变化, 然后再进行 B B B 线性变化的逆变化

这里涉及到了 线性代数的本质
简要概括为:

  • 矩阵
    • 形式上看, 是一个数表
    • 本质上是对空间施加线性变化
    • 对矩阵求逆(inv())之后再相乘, 表示“还原变化”
  • 行列式
    • 形式上看, 是一个数
    • 本质上是经过 行列式对应矩阵 所代表的线性变化后
      线性空间内图形的 长度(1维)/面积(2维)/体积(3维)/… 变化的倍数
    • 对矩阵求对应行列式的值: det()

一些特殊的矩阵

  • linespace() :
  • eye(n) : 主对角线上全是 1 1 1, 其他地方全为 0 0 0 n × n n\times n n×n 矩阵
  • zeros(n1,n2) : n 1 × n 2 n_1\times n_2 n1×n2 零矩阵
  • ones(n1,n2) : n 1 × n 2 n_1\times n_2 n1×n2 单位矩阵
  • diag() : 输入数组, 会将数组元素放在对角线上, 其他元素全为零
  • rand() : 生成随机矩阵

矩阵相关的函数

  • max(A) 找出 A 矩阵中每一列最大的元素 结果为行向量

    • 嵌套使用可以找出 A 矩阵中最大的元素 max(max(A))
  • min() 用法与 max() 一样

  • sum(A) 对 A 每一列的元素求和 结果为行向量

    • 嵌套使用可以得到 A 矩阵中所有元素的和
  • mean(A) 对 A 的每一列求平均数 结果为行向量

    • 嵌套使用可以得到 A 矩阵中所有元素的平均值
  • sort(A) 对 A 的每一列进行排序, 从上到下递增

    • 是列操作
  • sortrows(A) 对 A 的第一列进行排序 同时把对应列所在行也进行移动

    • 例如

      • >> A=[1 2 3; 0 5 6; 7 0 9]
        
        A =
        
             1     2     3
             0     5     6
             7     0     9
        
        >> sortrows(A)
        
        ans =
        
             0     5     6
             1     2     3
             7     0     9
        
  • size(A) 得到 A 矩阵的阶数 结果为两个数 第一个数为行数 第二个数为列数

  • length(A) 得到 A 向量的长度

  • find(A==[num]) 返回 A 矩阵中等于 [num] 的元素的下标文章来源地址https://www.toymoban.com/news/detail-455391.html

到了这里,关于【MATLAB】 01 基本操作与数组输入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2.MATLAB篇——基本操作与矩阵输入

    Note: sqrt()为开根,exp(1)=e,pi=π,log()为In() + - * / ^ help () 变量的方式 查看变量类型who()、whos() : ans:answer i,j:complex number Inf:∞ eps: 很小的数 NaN:not a number pi:π iskeyword()查看 Note: 不能用来命名 消除workspace中的变量clear() format用法 Style 结

    2024年02月06日
    浏览(33)
  • Matlab基本操作和矩阵输入(郭彦甫视频学习笔记)

    who/whos         查看工作区当前变量 clear         清空工作区的所有变量(慎用) clear  valuable         清除变量valuable clc             清空命令行窗口 clear all         清除工作区所有变量 close all         关闭所有显示的图片 一行代码太长需要换行写可以在后面加 ... 

    2024年02月06日
    浏览(25)
  • 第5章:5.4.2 字符串数组的基本操作(MATLAB入门课程)

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 在文本数据预处理阶段,我们通常需要对字符串数组进行基本的操作。我们将从字符串数组的引用开始,逐

    2024年01月16日
    浏览(32)
  • 01:mysql基本操作---DDL

    目录 前言: 1:SQL分类 2:类型 3:sql表的创建----简单版本 前言: 1:SQL语句可以单行或多行书写,以分号结尾。 2:SQL语句可以使用空格/缩进来增强语句的可读性。 3:MySQL数据库的SQL语句不区分大小写,建议使用大写 4:注释: 单行注释:-- 注释内容或#注释内容(MySQL特有) 多行注释

    2024年02月04日
    浏览(28)
  • 【Java】7 再识数组|数组的基本操作

    欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 目前,已开了以下专栏,欢迎关注与指导 1️⃣Java基础知识系统学习(持续更文中…) 2️⃣UML的应知应会(已更完) 3️⃣MySQL的应知应会(持续更文中…) 4️⃣算法与数据结构体系(持续更文中…

    2023年04月08日
    浏览(23)
  • JavaScript基本数组操作

    在JavaScript中,内置了很多函数让我们可以去对数组进行操作,本文我们就来学习这些函数吧 ● push可以让我们在数组后面再添加一个数据,例如 ● 我们也可以将新的新加的数据存入一个变量中,然后去得到它新的长度 除此在后面添加数据,我们也可以用这个函数来在数组前

    2024年02月10日
    浏览(27)
  • matlab绘制折线图基本操作

    本篇博客主要总结matlab绘制折线图的基本操作,使用的函数是plot函数,关于plot的函数语法规则,这里不再赘述,可以参考matlab官方文档,https://ww2.mathworks.cn/help/matlab/ref/plot.html#d124e1037051,不看也没关系,因为后面我会总结得很详细。 绘制折线图,首先我们要设定线型,线条

    2024年02月05日
    浏览(32)
  • 【矩阵的基本操作】——MatLab基础

    对矩阵A加一个’就表示A的转置矩阵 横拼: 对于A、B两个矩阵,我们该怎么做到使矩阵A在左,B在右形成一个新矩阵呢? 竖拼: 因为分号表示换号,所以用分号来进行竖直凭借 位置是一列一列从左往右数的,相当于门牌号只有一个数 取出矩阵A中第m行n列的元素 end(): 取矩阵

    2024年02月16日
    浏览(29)
  • MATLAB图论合集(一)基本操作基础

    本帖总结一些经典的图论问题,通过MATLAB如何计算答案。近期在复习考研,以此来巩固一下相关知识——虽然考研肯定不能用MATLAB代码哈哈,不过在实际应用中解决问题还是很不错的,比C++易上手得多~ 此外,本帖图论中非常重要的知识点——最小生成树。作为数据结构的理

    2024年02月13日
    浏览(29)
  • Matlab中的基本绘图操作,Matlab中如何绘图

    目录 一.示例基本程序 二.图片 三.说明         1.首先应该给定初值 2.matlab中的Π用pi代替 3.figure的作用是建立一个幕布,有时可以不写 4.plot( x=sin(x))作用是绘制一幅 x=sin(x)当前函数的图 5.title(\\\'   x=sin(x) \\\')的中可以添加图片的标题 x=sin(x) 6.xlabel(‘  x   ’)与ylabel(

    2024年02月16日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包