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
2ctrl + r % 添加注释
ctrl + t % 取消注释中断正在执行的操作
1
2ctrl + c
% 很多程序操作都是使用 ctrl+c 进行操作中断清屏
清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。1
clc;
清除变量名
清除 workspace 中的无用的变量,尤其是一些特别大的矩阵,不用时及时清理,可以减少内存占用。
1
2clear; % 清除 workspace 中的无用的变量
clear all; % 清除 workspace 中的所有变量关闭绘图窗口
1
2
3
4
5close all; % 关闭所有绘图窗口
%% 一般主函数都是三件套
clc;
clear all;
close all;取实部虚部
1
2
3a = 1 + 2i;
shibu = real(a);
xubu = imag(a);查看.mat文件中的数据
1
whos % 命令行输入
绘图
二维线条
1
2plot(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