MATLAB 备忘录
Last updated on April 30, 2023 am
在此记录笔者在使用 MATLAB 过程中遇到的问题及笔记。
MATLAB(Matrix Laboratory,矩阵实验室)是由美国 The MathWorks 公司出品的商业数学软件。MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除矩阵运算、绘制函数/数据图像等常用功能外,MATLAB 还可用来创建用户界面,以及调用其它语言(包括 C、C++、Java、Python、FORTRAN)编写的程序。 ——Wikipedia
常用知识
- 分号的作用 - 两个作用:1. 数组行分隔符;2. 取消运行显示 
常用操作
- 批量添加/取消注释 - 1 
 2- ctrl + r % 添加注释
 ctrl + t % 取消注释
- 中断正在执行的操作 - 1 
 2- ctrl + c
 % 很多程序操作都是使用 ctrl+c 进行操作中断
- 清屏 
 清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。- 1 - clc;
- 清除变量名 - 清除 workspace 中的无用的变量,尤其是一些特别大的矩阵,不用时及时清理,可以减少内存占用。 - 1 
 2- clear; % 清除 workspace 中的无用的变量
 clear all; % 清除 workspace 中的所有变量
- 关闭绘图窗口 - 1 
 2
 3
 4
 5- close all; % 关闭所有绘图窗口
 %% 一般主函数都是三件套
 clc;
 clear all;
 close all;
- 取实部虚部 - 1 
 2
 3- a = 1 + 2i;
 shibu = real(a);
 xubu = imag(a);
- 查看.mat文件中的数据 - 1 - whos % 命令行输入
绘图
- 二维线条 - 1 
 2- plot(t, r1, 'linewidth',1.2)
 % Linewidth 是修改线宽,Markersize 是修改离散点标记的大小(比如x或+)
- 显示网格 - 1 - grid on;
- 图片标题 - 1 - title('图片标题');
- 坐标轴设置 
| 1 |  | 
线型、符号及颜色汇总

其他问题
- 串口通讯中出现 “COMXX is not available.” 错误
| 1 |  | 
   解决方法:错误提示中已经说明了使用  instrfind   去检查串口对象是否在运行(被占用)。
   在命令行输入 instrfind  可以看到:
Instrument Object Array
Index: Type: Status: Name: 1 serial closed Serial-COM3
   index 为 1 那行中 COM3 已经被打开了。在代码中打开串口前加一行代码:fclose(instrfind);   
用意是把已经打开的串口关闭,此时再运行代码,就可以成功打开串口了。
- 1e2=100 - 表示一个数。这是科学计数法表示,e 前面指的是基数,e 后面指的是 10 的幂数,如 2.2e3=2.2×1000=2200。 
- workspace 不显示变量信息 - 使用 - function后就会这样。自动清掉在- function内部建立的变量。 解决方法:去掉头部的- function main和最后一个- end。
- “警告: 矩阵为奇异工作精度” - 解决方法:把 - inv改成- pinv即可。因为- inv是对矩阵求逆,而对于不是可逆矩阵的矩阵求逆就会出错,- pinv就是对不是可逆矩阵的矩阵求伪逆。
- matlab 中 @(x)的含义 - 表示 f 为函数句柄,@是定义句柄的运算符。f=@(x)acos(x) 相当于建立了一个函数文件: - 1 
 2
 3
 4- % f.m
 function
 y=f(x)
 y=acos(x);
- NaN: not a number