MATLAB 基础

为了用MATLAB写计算机作业而火速看了一个领英学习上的入门教程(两三年没用真的忘光了)。

概念


清除命令

  • clc 清除屏幕

  • clear myVar 删除变量myVar

    clear all 删除所有变量

创建变量

  • 创建一个标量:myScalar = 10
  • 创建一个向量
    • 行向量:myVector = [4 5 6]
    • 列向量:myVectorCol = [7; 8; 9]
  • 创建一个矩阵。myMatrix = [4 5 6; 7 8 9; 1 2 3]
    • myMatrix(1, 2)得到5
    • myMatrix(2, :)得到所有在第2行的列
    • myMatrix(3, 2:3)得到第3行、第2列和第3列。
  • 在命令行的末尾使用”; “意味着它将抑制(即不显示)结果

变量类别

  • double (默认)
  • format long将 double 类改为 long 类
  • double, long, short, single, logical (boolean)等等

元胞数组

一个有不同种类元素的矩阵

myCell = {[1 2 3] [4 5 6 7]; 'v1' 'v2'}

myCell{1, 2}得到[4 5 6 7]

核心语法


脚本

  • “.m “文件
  • 注释: %
  • disp(): 显示一些东西
  • randi(): 随机整数
  • 要想显示一个矩阵:matrix'

矩阵

  • 创建一些标准矩阵

    zeros(m, n)

    `ones(m, n)’

    `randi(m, n)’

  • 矩阵乘法

    • 标准乘法:M1 * M2
    • 元素与元素的乘法:M1 .* M2
  • 除法是相似的

    • 元素与元素的除法:M1 ./ M2

If 语句

1
2
3
4
5
6
7
if ...
...
elseif ...
...
else
...
end

Switch 语句

1
2
3
4
5
6
7
8
switch ...
case ...
...
case ...
...
otherwise
...
end

For 循环

1
2
3
4
5
6
7
8
9
10
11
% step = 1
for i = 1: 10
...
end

% step = 2
% for i = 1: 2: 10

% n =25;
% step = 5;
% for i = 0: step: n

While 循环

1
2
3
while ...
...
end

编程


设置路径

如果MATLAB找不到你的脚本或函数或其他东西,请确保你已经添加了路径

函数

  • 从 “当前文件夹 “创建一个函数,它是一个.m文件
  • 编辑模式,并编写你的函数

导入数据

要导入一个CSV文件:

  • 复制并粘贴到 “当前文件夹”
  • csvread('sine.csv')

调试

在编辑器左侧的小破折号处设置断点

性能

  • 预先分配一些内存可以加快大型计算的速度
  • 使用 “tik … tok “来计算时间

数据表示


绘图

1
2
3
figure
% figure(1)
plot(x, y)
  • 添加网格:grid on
  • 使窗口与绘图完全吻合:axis tight
  • 为轴设置限制:ylim([-1 1])
  • 改变颜色:plot(x, y, 'm') % magenta
  • 改变标记: plot(x, y, 'o') % circle, magenta
  • 用不同的线条多次绘制曲线:hold on。 要结束它,使用hold off
  • 添加注释:xlabel(), title(), legend()
  • 使用close all来关闭所有图

图片

  • 使用imread()来导入图像文件
  • 使用image()绘制图像(默认为正方形)
  • 使用imshow()以正确的长宽比绘制图像,轴上没有标签

3D 绘图

1
2
3
4
5
6
7
8
x = -2*pi:.5:2*pi;
[X, Y] = meshgrid(x);
Z = sine(X) + cos(Y);

figure
surf(X, Y ,Z)

colorbar

一个框图工具,可用于建立系统和反馈回路,为FPGA等硬件生成代码

附录


教程

Learning MATLAB

2022年11月 自适应滤波器

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×