MATLAB基础语法 #
一、注释 #
1.1 单行注释 #
使用 % 符号:
matlab
% 这是一个单行注释
x = 10; % 行尾注释
1.2 多行注释 #
使用 %{ 和 %}:
matlab
%{
这是多行注释
可以跨越多行
用于详细说明
%}
1.3 节注释 #
使用 %% 创建代码节:
matlab
%% 第一节:初始化
x = 0:0.1:10;
%% 第二节:计算
y = sin(x);
%% 第三节:绘图
plot(x, y);
1.4 文档注释 #
函数的文档注释:
matlab
function result = add(a, b)
% ADD 两数相加
% result = add(a, b) 返回a和b的和
%
% 输入参数:
% a - 第一个数
% b - 第二个数
%
% 输出参数:
% result - 两数之和
%
% 示例:
% add(1, 2) % 返回 3
%
% 另见: subtract, multiply
result = a + b;
end
二、标识符 #
2.1 命名规则 #
matlab
% 有效标识符
myVar = 1;
my_var = 2;
MyVar = 3;
var123 = 4;
_var = 5; % 可以,但不推荐
% 无效标识符
% 123var = 1; % 错误:不能以数字开头
% my-var = 2; % 错误:不能包含连字符
% my var = 3; % 错误:不能包含空格
% class = 4; % 错误:不能使用关键字
2.2 命名规范 #
| 类型 | 规范 | 示例 |
|---|---|---|
| 变量 | 小写,下划线分隔 | student_name |
| 常量 | 大写,下划线分隔 | MAX_SIZE |
| 函数 | 小写,驼峰或下划线 | calculateSum |
| 类 | 大驼峰 | MyClass |
| 脚本 | 小写,下划线 | my_script.m |
2.3 作用域 #
matlab
% 工作区变量(全局可见)
global_var = 10;
function test()
% 局部变量(仅函数内可见)
local_var = 20;
% 全局变量声明
global global_var;
disp(global_var);
end
三、关键字 #
3.1 保留关键字 #
matlab
% 控制流关键字
break, case, catch, continue, else, elseif, end, for,
function, global, if, otherwise, persistent, return,
switch, try, while
% 查看所有关键字
iskeyword
3.2 特殊变量 #
matlab
ans % 最近一次计算结果
eps % 浮点数精度
i, j % 虚数单位
Inf % 无穷大
NaN % 非数字
pi % 圆周率
realmax % 最大浮点数
realmin % 最小正浮点数
示例:
matlab
>> 1/0
ans =
Inf
>> 0/0
ans =
NaN
>> pi
ans =
3.1416
>> sqrt(-1)
ans =
0.0000 + 1.0000i
四、运算符 #
4.1 算术运算符 #
| 运算符 | 描述 | 示例 |
|---|---|---|
+ |
加法 | 3 + 2 = 5 |
- |
减法 | 3 - 2 = 1 |
* |
矩阵乘法 | A * B |
.* |
元素乘法 | A .* B |
/ |
矩阵右除 | A / B |
./ |
元素右除 | A ./ B |
\ |
矩阵左除 | A \ B |
.\ |
元素左除 | A .\ B |
^ |
矩阵幂 | A ^ 2 |
.^ |
元素幂 | A .^ 2 |
' |
共轭转置 | A' |
.' |
非共轭转置 | A.' |
matlab
% 矩阵运算
A = [1 2; 3 4];
B = [5 6; 7 8];
C = A * B % 矩阵乘法
% 结果: [19 22; 43 50]
D = A .* B % 元素乘法
% 结果: [5 12; 21 32]
% 幂运算
A^2 % 矩阵平方
A.^2 % 元素平方
4.2 关系运算符 #
| 运算符 | 描述 | 示例 |
|---|---|---|
== |
等于 | 5 == 5 = true |
~= |
不等于 | 5 ~= 3 = true |
> |
大于 | 5 > 3 = true |
< |
小于 | 3 < 5 = true |
>= |
大于等于 | 5 >= 5 = true |
<= |
小于等于 | 3 <= 5 = true |
matlab
% 数组比较
A = [1 2 3; 4 5 6];
B = [1 3 2; 4 6 5];
result = A == B
% 结果: [1 0 0; 1 0 0] (1=true, 0=false)
result = A > 3
% 结果: [0 0 0; 1 1 1]
4.3 逻辑运算符 #
| 运算符 | 描述 | 示例 |
|---|---|---|
& |
逻辑与(元素) | [1 0] & [1 1] = [1 0] |
| |
逻辑或(元素) | [1 0] | [0 1] = [1 1] |
~ |
逻辑非 | ~[1 0] = [0 1] |
&& |
短路与 | true && false = false |
|| |
短路或 | true || false = true |
matlab
% 元素逻辑运算
A = [true false true];
B = [true true false];
A & B % [true false false]
A | B % [true true true]
~A % [false true false]
% 短路逻辑运算
% && 和 || 用于标量,具有短路特性
x = 5;
if x > 0 && x < 10
disp('x在0到10之间');
end
4.4 运算符优先级 #
从高到低:
| 优先级 | 运算符 |
|---|---|
| 1 | () |
| 2 | .' ^ .' .^ |
| 3 | + - ~(一元) |
| 4 | * ./ \ .\ .* ./ |
| 5 | + -(二元) |
| 6 | : |
| 7 | < <= > >= == ~= |
| 8 | & |
| 9 | | |
| 10 | && |
| 11 | || |
matlab
% 使用括号明确优先级
result = 2 + 3 * 4; % 14
result = (2 + 3) * 4; % 20
% 复杂表达式
x = 1;
y = 2;
z = 3;
result = x < y && y < z; % true
五、表达式 #
5.1 数值表达式 #
matlab
% 整数
a = 42;
% 浮点数
b = 3.14159;
% 科学计数法
c = 1.5e-10; % 1.5 × 10^-10
d = 2.5E8; % 2.5 × 10^8
% 复数
z = 3 + 4i;
z = complex(3, 4);
5.2 字符串表达式 #
matlab
% 字符串(双引号)
str1 = "Hello World";
% 字符数组(单引号)
str2 = 'Hello World';
% 字符串拼接
str3 = "Hello" + " " + "MATLAB";
% 格式化字符串
name = "张三";
age = 25;
str4 = sprintf("%s今年%d岁", name, age);
5.3 数组表达式 #
matlab
% 行向量
row = [1 2 3 4 5];
row = 1:5; % 使用冒号
row = 1:2:10; % 步长为2
% 列向量
col = [1; 2; 3; 4; 5];
col = (1:5)'; % 转置
% 矩阵
mat = [1 2 3; 4 5 6; 7 8 9];
% 特殊矩阵
zeros(3, 3); % 3×3零矩阵
ones(2, 4); % 2×4全1矩阵
eye(3); % 3×3单位矩阵
rand(2, 3); % 2×3随机矩阵
5.4 冒号表达式 #
matlab
% start:step:end
x = 0:0.1:1; % [0, 0.1, 0.2, ..., 1]
x = 10:-1:0; % [10, 9, 8, ..., 0]
x = 1:5; % [1, 2, 3, 4, 5](默认步长1)
% 使用linspace
x = linspace(0, 1, 11); % 0到1之间11个等分点
% 使用logspace
x = logspace(0, 3, 4); % 10^0到10^3之间4个对数等分点
六、语句 #
6.1 简单语句 #
matlab
% 赋值语句
x = 10;
y = x + 5;
% 表达式语句
sin(pi/2); % 结果存储在ans中
% 抑制输出
x = 10; % 显示输出
x = 10; % 不显示输出(加分号)
6.2 复合语句 #
matlab
% 多语句同行
x = 1; y = 2; z = 3;
% 长语句续行
total = 1 + 2 + 3 + 4 + 5 + ...
6 + 7 + 8 + 9 + 10;
% 使用括号续行
result = (1 + 2 + 3 + 4 + 5 + ...
6 + 7 + 8 + 9 + 10);
6.3 控制语句 #
matlab
% 条件语句
if x > 0
disp('正数');
elseif x < 0
disp('负数');
else
disp('零');
end
% 循环语句
for i = 1:5
disp(i);
end
% switch语句
switch day
case 'Monday'
disp('星期一');
case 'Tuesday'
disp('星期二');
otherwise
disp('其他');
end
七、代码规范 #
7.1 缩进 #
matlab
% 使用4个空格缩进(推荐)
function result = calculate(x)
if x > 0
result = sqrt(x);
else
result = NaN;
end
end
7.2 空行 #
matlab
% 函数之间空两行
function a = func1()
a = 1;
end
function b = func2()
b = 2;
end
% 逻辑块之间空一行
x = 1:10;
y = x.^2;
plot(x, y);
7.3 行长度 #
matlab
% 每行不超过80字符
% 长语句使用续行符
long_variable_name = function_with_long_name(...
argument1, argument2, argument3);
7.4 注释规范 #
matlab
% 文件头注释
%=====================================================================
% 文件名: my_script.m
% 功能: 计算并绘制正弦函数
% 作者: 张三
% 日期: 2026-03-27
% 版本: 1.0
%=====================================================================
% 函数注释
function y = myFunction(x)
% MYFUNCTION 计算x的平方
% y = myFunction(x) 返回x的平方值
%
% 输入:
% x - 输入数值或数组
%
% 输出:
% y - x的平方
%
% 示例:
% myFunction(3) % 返回 9
y = x.^2;
end
八、常见错误 #
8.1 语法错误 #
matlab
% 错误:括号不匹配
x = (1 + 2 * 3 % Error: 缺少右括号
% 正确
x = (1 + 2) * 3;
8.2 运算符错误 #
matlab
% 错误:矩阵维度不匹配
A = [1 2];
B = [1; 2];
C = A * B; % 正确:内积
C = A .* B; % 错误:维度不匹配
% 正确
A = [1 2];
B = [3 4];
C = A .* B; % 元素乘法
8.3 关键字冲突 #
matlab
% 错误:使用关键字作为变量名
% end = 10; % 错误:end是关键字
% 正确
end_value = 10;
九、总结 #
本章学习了MATLAB的基础语法:
- 注释:单行、多行、节注释
- 标识符:命名规则和规范
- 关键字:保留字和特殊变量
- 运算符:算术、关系、逻辑运算符
- 表达式:数值、字符串、数组表达式
- 代码规范:缩进、空行、注释规范
掌握这些基础知识,是编写高质量MATLAB代码的第一步。下一章,我们将学习MATLAB的数据类型。
最后更新:2026-03-27