Matlab 官方基础教程

Table of contents

命令

输入命令

  1. 计算:3*5
  2. 赋值:m = 3*5
  3. 叠加:m = m+1
  4. 幂:m = n^3
  5. 抑制输出:在命令末尾添加分号 x = 5+1;
  6. 回溯以前的命令:键盘方向键“上”
  7. 查询变量的值:直接输入要查询的变量名

命名变量

以字母开头,并且仅包含字母(区分大小写)、数字和下划线 (_)。创建的变量会存储在界面右侧的工作区。

保存和加载变量

  1. 将工作区变量保存到名为 datafile.mat 的 MAT 文件中:save datafile
  2. 只保存部分变量:save datafile m
  3. 从名为 datafile.mat 的 MAT 文件加载变量到工作区:load datafile
  4. 只加载部分变量:load datafile m
  5. 读入文件中的数据后,查看数据矩阵:usage
  6. 清空工作区:clear
  7. 清理命令行窗口:clc

使用内置的函数和常量

  1. 圆周率:pi(虽只显示 4 位小数,但在内部是更高精度)
  2. 绝对值:a = abs(-5)
  3. 三角函数:b = sin(30)
  4. 平方根:c = sqrt(-9)
  5. 最大值:d = max(x)
  6. 四舍五入取整:e = round(x)
  7. 傅里叶变换:f = fft(x)
  8. 控制显示精度:format long,默认显示为format short

向量和矩阵

数组

  1. 创建行向量:x = [3 5] ,也可用逗号分隔x = [3,5]
  2. 创建列向量:y = [7;9] (分号控制一个行向量是否结束)
  3. 多行多列数组:z = [5 6 7;8 9 10]
  4. 数组中的元素可为计算值:m = [sqrt(4) pi^3]

等间距向量

  1. 默认间距为 1 的等间距向量:x = [1:4] 等价于 x = [1,2,3,4]
  2. 设置间距的等间距向量:y = [20:2:26] 等价于 y = [20,22,24,26]
  3. 只知道向量中所需的元素数目(而不是每个元素之间的间距),则可以改用 linspace 函数: linspace(first,last,number_of_elements) x = linspace(0,1,5) 等价于 x = [0, 0.250, 0.500, 0.750, 1.000]
  4. 转置:x = x'
  5. 创建行向量时,直接转置,以获得列向量:x = [1:2:5]'

创建数组的函数

  1. 行列相等 3*3 的随机数矩阵:x = rand(3)
  2. 2 行 3 列的随机数矩阵:y = rand(2,3)
  3. 6 行 3 列的全零矩阵:z = zeros(6,3)
  4. 求矩阵大小(行列值):m = size(z) 结果为 “ m = [6,3] ”
  5. 创建与现有矩阵大小相同的矩阵:rand(size(x))

索引和修改数组

对数组进行索引

  1. 向量 x 的第 4 个元素:x(4)
  2. 矩阵 A 的第 3 行第 5 列:A(3,5)
  3. 矩阵 A 的倒数第 2 行第 3 列:A(end-1,3)

提取多个元素

  1. 将向量 x 的第 2、3、4 个元素存为向量 y:y = x(2:4)
  2. 将向量 x 的第 2、5、6 个元素存为向量 z:z = x([2,5,6])
  3. 将矩阵 A 的第 2 列存为向量 m:m = A(:,2)
  4. 将矩阵 A 的第 2、3、4 行所有元素存为矩阵 B:B = A(2:4,:)

数组计算

对向量执行数组运算

  1. 将向量 x 的每个元素加 2,存为向量 y:y = x+2
  2. 将两个大小相同的向量或矩阵相加:z = x+y
  3. 矩阵乘法:z = [3 4] * [10;20] = 110
  4. 矩阵对应位置元素相乘:z = [3 4] .* [10 20] = [30 80]

调用函数

获取函数的多个输出

  1. 创建变量 dr 和 dc,其中分别包含变量 data 的行数和列数:[dr, dc] = size(data)
  2. max 函数的第一个输出为输入向量的最大值。执行带两个输出的调用时,第二个输出为索引值:[xMax,idx] = max(x)
  3. 如果只需函数的第二个输出,可以使用波浪号字符 (~) 忽略特定输出。只需要向量中最大值的索引:[~,idx] = max(x)

绘制数据图

绘制向量图

  1. 以向量 x 为 X 轴,向量 y 为 Y 轴绘制图像:plot(x,y)
  2. 绘制一条红色 (r) 虚线 (–),并使用圆圈 (o) 作为标记:plot(x,y,"r--o")
  3. plot 函数的第三个参数
    1. 线型:默认实线-,虚线--,点线:,点划线-.
    2. 颜色:红色r,绿色g,蓝色b,青蓝色c,品红色m,黄色y,黑色k,白色w
    3. 标记点形状:加号+,圆圈o,星号*,点.,叉号x,方形s,菱形d,上三角^,下三角v,右三角>,左三角<,五角星p,六角星h
  4. 启用保留状态时,将继续在同一坐标区上绘图:hold on
  5. 要恢复默认绘图行为,即其中每个绘图都有自己的坐标区:hold off
  6. 单独绘制一个向量时,会使用向量值作为 y 轴数据,并将 x 轴数据的范围设置为从 1 到 n(向量中的元素数目):plot(v1)
  7. plot 函数接受可选的附加输入,这些输入由一个属性名称和一个关联的值组成:plot(y,"LineWidth",5)plot(x,y,"ro-","LineWidth",5)
  8. 限制 x 轴的取值范围:xlim([0 1000])

编写绘图注释

  1. 在绘图中添加标题:title("Plot Title")
  2. 为绘图的 y 轴添加注释:ylabel("Mass (g)")
  3. 使用 legend 函数为绘图添加图例(区分多次绘制出的线):legend("a","b","c")

逻辑数组

逻辑索引

  1. 使用关系运算符测试 π 是否小于 4:test = pi<4
  2. 使用关系运算符将某个向量或矩阵与单个标量值进行比较:test = v1 <4
  3. 使用逻辑数组作为数组索引,提取 v1 中大于 6 的所有元素:v = v1(v1 > 6)
  4. 将数组 x 中等于 999 的所有值都替换为值 1:x(x==999) = 1

编程

决策分支

if x > 0.5
    y = 3
else if x == 0.5
    y = 2
else
    y = 1
end

For 循环

for idx = 1:7
    hold on
    plot(idx,density(idx),'*')
    hold off
    pause(0.2)
end