MATLAB学习笔记一:MATLAB基础知识,数组矩阵基础知识

1. Schedule


Week Topic/Event Notes
1 简介
2 MATLAB作为计算器与数组矩阵操作
3 结构化程序设计与用户自定义函数
4 变量与数据存取
5 初阶绘图
6 进阶绘图

2. MATLAB基础知识


2.1 MATLAB编程模式

  • 命令行(in command window)
  • Scripts脚本(.m文件)

2.2 MATLAB作为计算器

  • 运算符:+ - * /^
  • 计算结果,并显示为ans
  • 优先规则
    • 在优先组中从左到右
    • Precedence groups are (highest first):
    1. 方括号
    2. 幂函数^
    3. 乘除* /
    4. 加减+ -

2.2.1 计算练习

  • c o s ( ( 1 + 2 + 3 + 4 ) 3 5 ) cos(\sqrt{\frac{(1+2+3+4)^3}{5}})
  • s i n ( π ) + ln ( t a n ( 1 ) ) sin(\sqrt{\pi})+\ln(tan(1))
  • 2 3.5 × 1.7 2^{3.5\times1.7}
  • e s i n ( 10 ) e^{sin(10)}

2.3 初等数学函数

2.4 嵌入函数

  • 函数可以嵌入到其他函数中: s i n ( c o s ( p i ) ) = c o s ( p i ) , s i n ( a n s ) sin(cos(pi))=cos(pi),sin(ans)
  • 许多代码行可以压缩成一个命令

2.5 变量

  • 变量不需要在赋值之前声明
  • 单个“equal”符号(=)是赋值运算符
>>> LHS = RHS
>>> A = 10
  1. 变量大小写有区别 EX: A=10 a=10
  2. 变数不可以以数字开头 EX: 2A=10

2.6 特殊变量和常量

  • ans
  • i, j: complex number 复数
  • Inf: \infty            >> x = 1/0
  • eps: 2.2204e-016      >> x = log(0)
  • NaN: not a number      >> x = inf/inf
  • pi: π \pi
>> iskeyword       # 返回matlab中所有的关键字,共20个
>> iskeyword('while')
ans =
1
>> iskeyword('except')
ans =
0

2.7 MATLAB 调用优先级

从高到低依次是:

  • 变量
  • 内部函数
  • 子函数
  • 私有函数
    • MEX 文件
    • P 文件
    • M 文件
>> cos='This string.'; % 本身cos是一个函数,但是在这里cos为变量,并将字符串This string.赋值给cos,cos(8)问的是字符串中第8个字符r
>> cos(8)
ans = 
r
% 故尽量不要用 关键词 或者 内部函数 当做 变量命

2.8 数值显示“格式”

  • short  3.1416
  • long   3.141592653589793
  • shortE  3.1416e+00
  • longE  3.141592653589793e+00
  • bank
  • hex
  • rat   355/113
>> format long

2.9 命令行终端

  • matlab中分号“;”表示不显示运算结果
  • 方向键上“ \uparrow ”可以调出之前的指令
  • clc: clear command window display
  • clear: remove all variables in the workspace
  • who: variables in the workspace
  • whos: variable information of the workspace

3. 数组矩阵基础知识


3.1 数组(Array)(向量和矩阵Vector and Matrix)

  • Row vector:
    >> a = [1 2 3 4]

  • Column vector:
    >> b = [1;2;3;4]

  • Try:
    >> a*b
    >> b*a

  • matrix:

>> A = [1 2 3;4 5 6;7 8 9;]

A = [ 1 2 3 4 5 6 7 8 9 ] A= \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right]

3.2 数组索引

  • 选择矩阵内的某个元素子集

A = [ 1 2 3 4 5 6 7 8 9 ] A= \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right]

>> A(8)       # 矩阵A中第8个元素
ans =
6
>> A([1 3 5])    # 矩阵A中第1 3 5个元素组成新的矩阵
ans =
1    7    5
>> A([1 3; 1 3])  # 矩阵A中第1 3个元素组成新的矩阵,其中;是换行符
ans =
1    7
1    7
>> A(3,2)      # 矩阵A中第3行第2列的元素
ans =
8
>> A([1 3],[1 3])  # 前一个方括号表示第1 3行,后一个表示第1 3列,然后组成新的矩阵
ans =
1    3
7    9

3.3 替换元素

  • 更改矩阵中的某个元素
>> A
A =
     1     2     3
     4     5     6
     7     8     9

>> A(1,2)=3     % 替换元素命令
A =
     1     3     3
     4     5     6
     7     8     9
>> A(3,:)      % 此处 : 表示全部的意思,此命令代表矩阵 A 第三行的全部
ans =
     7     8     9
>> A(3,:)=[]    % 将 A 的第三行用 空 替代
A =
     1     2     3
     4     5     6

3.4 冒号操作符

  • 想要创建一个长的数组:A = [1 2 3 … 100]
  • 语法:j:k \Longrightarrow [j, j+1, j+2,…, j+m]
       j:i:k \Longrightarrow [j, j+i, j+2i, …, j+m*i]

3.5 数组级联

>> 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

3.6 数组运算

  • 数组运算符:+ - * / ^ . ’
  • 此处注意点乘.* 点除./ 点次方.^ ,点乘是数组运算,要求参与运算的两个量必须是维数相同,是对应元素的相乘。

3.7 一些特殊的矩阵

  • eye(n): 矩阵>> eye(3) I 3 = [ 1 0 0 0 1 0 0 0 1 ] \Longrightarrow I_3=\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

  • zeros(n1,n2): n1*n2的零矩阵

  • ones(n1,n2): n1*n2的 1 矩阵

  • diag( ): 对角线矩阵>> diag([2 3 4]) [ 2 0 0 0 3 0 0 0 4 ] \Longrightarrow \left[ \begin{matrix} 2 & 0 & 0 \\ 0 & 3 & 0 \\ 0 & 0 & 4 \end{matrix} \right]

    扫描二维码关注公众号,回复: 3291160 查看本文章

3.8 一些矩阵相关函数

A = [ 1 2 3 0 5 6 7 0 9 ] A= \left[ \begin{matrix} 1 & 2 & 3 \\ 0 & 5 & 6 \\ 7 & 0 & 9 \end{matrix} \right]

>> max(A)    # 每一列中最大的数
ans =
    7    5    9

>> max(max(A)) # 数组中最大的数
ans =
    9
>> min(A)    # 每一列中最小的数
ans =
    0    0    3

>> sum(A)    # 每一列求和
ans =
    8    7   18

>> mean(A)    # 每一列的平均数
ans =
 2.6667   2.3333   6.0000

>> sort(A)   # 每一列元素按照从小到大的顺序排列
ans =
    0    0    3
    1    2    6
    7    5    9

>> sortrows(A) # 以行为单位,将第一列元素按照从小到大的顺序排列

>> size(A)   # A 是几行几列数组
ans =
    3    3

>> length(A)  # 行的长度
ans =
    3

>> find(A==5) # 找到某元素在数组中的位置
ans =
    5

猜你喜欢

转载自blog.csdn.net/zhao416129/article/details/82748301