MATLAB 变量

变量命名

在 MATLAB 环境中,每个变量都是一个数组或矩阵。MATLAB 变量命名规则:

  • 必须以字母开头
  • 可以包含字母、数字和下划线
  • 区分大小写
  • 长度不超过 63 个字符

可以通过简单的方式分配变量。

1
x2 = 3;   thirus_normary = 19;

变量基础

在MATLAB环境中,每个变量都是一个数组或矩阵。

可以通过简单的方式分配变量。例如,

1
x2 = 3;	       %定义x2并用值初始化它

MATLAB将执行上述语句并返回结果 x2 = 3

这个变量的含义是它创建一个名为x2的1乘1矩阵,并将值 3 存储在其元素中。

注意

  • 将变量输入系统后,您以后可以参考它。
  • 变量在使用前必须具有值。
  • 当表达式返回未分配给任何变量的结果时,系统会将其分配给名为ans的变量,该变量可在以后使用。
1
sqrt(78)

MATLAB将执行上述语句并返回以下结果

1
ans =  8.8318

多项分配

可以在同一行上进行多个分配(使用逗号分隔):

1
a = 12; b = 7; c = a * b  % 最后一个表达式结果会显示

或者使用括号分组

1
[a, b, c] = deal(12, 7, a*b); % 使用deal函数批量赋值

who 和 whos 命令

who命令显示您已使用的所有变量名。

1
who

MATLAB将执行上述语句并返回以下结果

1
2
3
您的变量为:

ans th x x2 y

whos命令显示了有关变量的更多信息

  • 当前内存中的变量
  • 每个变量的类型
  • 分配给每个变量的内存
  • 它们是否为复杂变量
1
2
3
4
5
6
7
Name      Size            Bytes  Class     Attributes

ans 1x1 8 double
th 1x1 8 double
x 1x1 8 double
x2 1x1 8 double
y 1x1 8 double

clear 命令

clear命令用于从内存中删除变量:

1
2
3
4
clear x2;     % 删除指定变量
clear a b c; % 删除多个变量
clear; % 清除所有变量
clear all; % 清除所有变量,包括全局变量

变量持久化

使用saveload命令实现变量的磁盘存储与恢复:

1
2
3
4
save('mydata.mat');      % 保存所有变量到文件
save('mydata.mat', 'a', 'b'); % 只保存指定变量
clear; % 清除内存变量
load('mydata.mat'); % 从文件恢复变量

内存管理技巧

  • 使用whos监控内存使用
  • 大矩阵运算后使用clear释放内存
  • 使用save将暂时不用的变量存入文件
  • 避免创建不必要的大型中间变量
1
2
3
4
5
6
% 高效计算示例
result = zeros(1000, 1000);
for i = 1:1000
% 直接计算到结果矩阵,避免中间变量
result(i, :) = sin((1:1000) * i / 1000);
end

长作业与续行符

可以使用省略号 (…) 将长语句扩展到多行:

1
2
3
4
5
6
% 物理公式示例
initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity + acceleration * time ...
+ 0.5 * acceleration * time^2; % 续行符前可以有运算符

格式控制命令

MATLAB 提供多种输出格式控制:

命令 描述 示例输出 (π)
format short 短格式(默认,4 位小数) 3.1416
format long 长格式(16 位小数) 3.141592653589793
format bank 银行格式(2 位小数) 3.14
format shortE 短格式科学计数法 3.1416e+00
format longE 长格式科学计数法 3.141592653589793e+00
format rat 有理格式(分数表示) 355/113
format hex 十六进制格式 400921fb54442d18

默认情况下,MATLAB显示带有四个小数位值的数字。这就是所谓的short format

但是,如果要提高精度,则需要使用format命令。

例如

format long命令在小数点后显示16位数字。

format short命令是默认格式,默认,4 位小数

1
2
3
4
format long
x = 7 + 10/3 + 5 ^ 1.2
format short
x % 切换回短格式显示

MATLAB将执行上述语句并返回以下结果

1
17.231981640639408

变量类型与赋值特性

MATLAB 是动态类型语言,变量类型由赋值自动确定:

1
2
3
4
5
6
a = 42;          % 双精度数值
b = 'hello'; % 字符数组(字符串)
c = [1 2 3; 4 5 6]; % 2×3矩阵
d = true; % 逻辑值
e = {1, 'text', [1+2i]}; % 元胞数组
f = struct('name', 'MATLAB', 'version', 2025); % 结构体

注意:

  • 变量在使用前必须赋值
  • 变量名不能与 MATLAB 内置函数名冲突(如sin, pi等)
  • 赋值语句不需要分号结尾,但分号可抑制输出

特殊变量

MATLAB 保留了一些特殊变量:

变量名 描述
ans 最近未赋值的计算结果
pi 圆周率 π
i, j 虚数单位 √(-1)
Inf 无穷大
NaN 非数字(Not a Number)
eps 浮点数精度
realmax 最大正浮点数
realmin 最小正浮点数

MATLAB 命令

MATLAB是一个用于数值计算和数据可视化的交互式程序。您可以通过在命令窗口的MATLAB提示符 ‘>>’ 处键入命令来输入命令。

在本节中,我们将提供常用的通用MATLAB命令列表。

用于管理会话的命令

MATLAB提供了用于管理会话的各种命令。下表提供了所有此类命令

命令 目的
clc 清除命令窗口。
clear 从内存中删除变量。
exist 检查文件或变量的存在。
global 声明变量为全局变量。
help 搜索帮助主题。
lookfor 在帮助条目中搜索关键字。
quit 停止MATLAB。
who 列出当前变量。
whos 列出当前变量(长显示)。

用于系统的命令

MATLAB提供了各种有用的命令来处理系统,例如将当前工作作为文件保存在工作区中,并在以后加载文件。

它还为其他与系统相关的活动提供各种命令,例如显示日期,在目录中列出文件,显示当前目录等。

下表显示了一些常用的与系统相关的命令

命令 目的
cd 更改当前目录。
date 显示当前日期。
delete 删除文件。
diary 开启/关闭日记文件录制。
dir 列出当前目录中的所有文件。
load 从文件加载工作区变量。
path 显示搜索路径。
pwd 显示当前目录。
save 将工作空间变量保存在文件中。
type 显示文件的内容。
what 列出当前目录中的所有MATLAB文件。
wklread 读取.wk1电子表格文件。

输入和输出命令

MATLAB提供以下与输入和输出相关的命令

命令 目的
disp 显示数组或字符串的内容。
fscanf 从文件中读取格式化的数据。
format 控制屏幕显示格式。
fprintf 执行对屏幕或文件的格式化写入。
input 显示提示并等待输入。
; 禁止丝网印刷。

fscanffprintf命令的行为像C的scanf和printf函数。它们支持以下格式代码-

格式代码 目的
%s 格式化为字符串。
%d 格式化为整数。
%f 格式化为浮点值。
%e 以科学计数形式格式化为浮点值。
%g 以最紧凑的格式进行格式化:%f或%e。
*** 在输出字符串中插入新行。
** 在输出字符串中插入一个选项卡。

格式函数具有以下用于数字显示的形式-

格式功能 最多显示
format short 四个小数位(默认值)。
format long 16位小数。
format short e 五位数加指数。
format long e 16位数字加指数。
format bank 两个小数位数。定点货币形式
format + 正数,负数或零。
format rat 有理近似。小数分数表示
format compact 禁止某些换行符。
format loose 重置为不太紧凑的显示模式。

高级输入输出技术

MATLAB 提供了更灵活的数据导入 / 导出函数:

命令 适用场景
importdata 自动识别并导入文本文件、电子表格或图像数据
readtable 读取表格数据到 table 对象,支持标题行、缺失值处理等
writetable 将 table 对象写入文件(CSV、XLSX 等)
csvread/csvwrite 简化的 CSV 文件读写函数
xlswrite/xlsread 读写 Excel 文件(需安装 Excel 或兼容组件)

向量,矩阵和数组命令

下表显示了用于处理数组,矩阵和向量的各种命令-

命令 目的
cat 连接数组。
find 查找非零元素的索引。
length 计算元素数。
linspace 创建规则间隔的矢量。
logspace 创建对数间隔的向量。
max 返回最大元素。
min 返回最小的元素。
prod 每列的乘积。
reshape 更改大小。
size 计算数组大小。
sort 对每一列进行排序。
sum 对每列求和。
eye 创建一个单位矩阵。
ones 创建一个数组。
zeros 创建一个零数组。
cross 计算矩阵叉积。
dot 计算矩阵点积。
det 计算数组的行列式。
inv 计算矩阵的逆。
pinv 计算矩阵的伪逆。
rank 计算矩阵的秩。
rref 计算精简行梯形表格。
cell 创建单元格数组。
celldisp 显示单元格数组。
cellplot 显示单元格数组的图形表示形式。
num2cell 将数字数组转换为单元格数组。
deal 匹配输入和输出列表。
iscell 标识单元格数组。

绘图命令

MATLAB提供了许多用于绘制图形的命令。下表显示了一些常用的绘图命令-

命令 目的
axis 设置轴限制。
fplot 函数的智能绘图。
grid 显示网格线。
plot 生成xy图。
print 打印图或将图保存到文件中。
title 将文本放在图的顶部。
xlabel 在x轴上添加文本标签。
ylabel 将文本标签添加到y轴。
axes 创建轴对象。
close 关闭当前图。
close all 关闭所有地块。
figure 打开一个新的图形窗口。
gtext 通过鼠标启用标签放置。
hold 冻结当前图。
legend 用鼠标放置图例。
refresh 重新绘制当前图形窗口。
set 指定对象(例如轴)的属性。
subplot 在子窗口中创建图。
text 在图中放置字符串。
bar 创建条形图。
loglog 创建对数-对数图。
polar 创建极坐标图。
semilogx 创建半对数图。(对数横坐标)。
semilogy 创建半对数图。(对数纵坐标)。
stairs 创建楼梯图。
stem 创建茎图。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
% 图形美化示例
x = linspace(0, 2*pi, 100);
y1 = sin(x);
y2 = cos(x);

% 创建图形并设置属性
figure('Position', [100 100 800 400]) % 设置窗口位置和大小
plot(x, y1, 'LineWidth', 2, 'Color', [0.5 0.7 0.9]) % 设置线宽和颜色
hold on
plot(x, y2, '--', 'LineWidth', 2, 'Color', [0.9 0.6 0.3]) % 虚线和不同颜色

% 添加标题和标签
title('Sin and Cos Functions', 'FontSize', 14)
xlabel('x', 'FontSize', 12)
ylabel('Amplitude', 'FontSize', 12)

% 添加图例和网格
legend('sin(x)', 'cos(x)', 'Location', 'best')
grid on

% 设置坐标轴范围和刻度
axis([0 2*pi -1.2 1.2])
xticks(0:pi/2:2*pi)
xticklabels({'0', '\pi/2', '\pi', '3\pi/2', '2\pi'})

% 添加注释
text(pi/2, 1, '\leftarrow \sin(\pi/2)=1', 'HorizontalAlignment', 'left')
text(pi, -1, '\leftarrow \cos(\pi)=-1', 'HorizontalAlignment', 'left')

交互式绘图命令

命令 功能
ginput 通过鼠标在图形上获取坐标点
zoom 启用图形缩放功能
pan 启用图形平移功能
datacursormode 在图形上显示数据光标,获取精确坐标值
impixelinfo 在图像上显示像素信息
colorbar 添加颜色条,显示颜色映射关系
colormap 设置图形的颜色映射表,支持 jet、hsv、gray 等多种预设

图形导出与保存

命令 功能
saveas 将当前图形保存为指定格式的文件
print 更灵活的图形导出命令,支持分辨率、纸张大小等参数控制
exportgraphics MATLAB R2020b 及以后版本提供的导出命令,优化了图形保存质量
1
2
3
4
5
6
7
8
9
10
% 图形保存示例
fig = figure;
plot(x, y);
title('My Plot');

% 传统方法
print('myplot.png', '-dpng', '-r300'); % 300 DPI PNG

% 推荐方法 (R2020b及以后)
exportgraphics(fig, 'myplot.png', 'Resolution', 300);

MATLAB M文件

到目前为止,我们已经使用MATLAB环境作为计算器。但是,MATLAB还是一种强大的编程语言,也是一种交互式计算环境。MATLAB还允许您将一系列命令写入文件并以完整的单元形式执行文件,例如编写函数和调用它。

MATLAB允许编写两种程序文件

  • 脚本:脚本文件是扩展名为 .m 的程序文件。在这些文件中,您编写了一系列要一起执行的命令。脚本不接受输入,也不返回任何输出。它们对工作区中的数据进行操作。
  • 函数:函数文件也是扩展名为 .m 的程序文件。函数可以接受输入并返回输出。内部变量是函数的局部变量。

您可以使用MATLAB编辑器或任何其他文本编辑器来创建.m文件。在本节中,我们将讨论脚本文件。脚本文件包含多行MATLAB命令和函数调用。您可以通过在命令行中输入脚本名称来运行脚本。

如果使用命令提示符,请键入edit命令提示符。这将打开编辑器。您可以直接输入edit,然后输入文件名(扩展名为.m)

1
2
3
edit 
Or
edit <filename>

上面的命令将在默认的MATLAB目录中创建文件。如果要将所有程序文件存储在特定文件夹中,则必须提供完整路径。

让我们创建一个名为progs的文件夹。在命令提示符(>>)处键入以下命令,这和 bash 的命令是差不多的

1
2
3
mkdir progs    % create directory progs under default directory
chdir progs % changing the current directory to progs
edit prog1.m % creating an m file named prog1.m