Skip to content

MATLAB - 预定义变量

MATLAB 提供了一组内置名称,用于表示常见的数学常量和特殊值。尽管您可以用自己的变量赋值覆盖它们,但强烈不建议这样做,因为它会成为一种最佳实践。这样做可能导致混乱且难以调试的错误,尤其是在使用依赖于这些标准值的函数时。

这些是您将遇到的最常见的内置值。

名称描述和现代最佳实践
pi表示数学常数 π (≈ 3.14159)。它是一个双精度浮点数。
i, j表示虚数单位,其中 i² = -1。最佳实践: 使用 1i 或 1j(例如,z = 3 + 4*1i)来创建复数。这可以防止您不小心将 i 或 j 用作循环计数器时出现问题。
inf表示无穷大。它通常是 1/0 或 log(0) 等运算的结果。
NaN表示“非数字”(Not a Number)。它是由数学上未定义的运算(例如 0/0 或 inf - inf)产生的。
eps“浮点相对精度”。它是 1.0 到下一个最大的可表示双精度数之间的距离。对于数值稳定性检查很有用。您也可以使用 eps(x) 来查找值 x 处的间隙。
% 计算半径为 5 的圆的面积
radius = 5;
area = pi * radius^2;
% 使用推荐语法创建一个复数
complex_num = -2 + 1i * 5;
% 演示 NaN 和 Inf 如何产生
val1 = 0/0; % 结果为 NaN
val2 = 1/0; % 结果为 Inf
disp(['面积: ', num2str(area)])
disp(['复数: ', num2str(complex_num)])
disp(['0/0 是: ', num2str(val1)])
disp(['1/0 是: ', num2str(val2)])

预期输出:

面积: 78.5398
复数: -2+5i
0/0 是: NaN
1/0 是: Inf
名称描述
ans一个临时变量,用于存储最近未赋值给变量的命令的结果。它在命令窗口中进行快速计算时很有用,但不应在脚本中依赖它。
% 在命令窗口中...
5 * 10
ans =
50
ans / 2
ans =
25

原始教程将一些命令和关键字列为变量。正确区分它们非常重要。

命令/关键字描述
whos一个列出当前工作区中所有变量的命令,包括它们的大小、内存使用情况和数据类型。
global一个关键字,用于声明一个可以在不同函数和基本工作区中访问的变量。请谨慎使用,因为它会使代码更难调试。
% 创建一些不同类型的变量
A = rand(3, 3); % 一个 3x3 的双精度矩阵
S = "Hello, World!"; % 一个字符串标量
C = {1, 'two', [3,3]}; % 一个单元格数组
% 显示工作区内容
whos

预期输出(会略有不同):

Name Size Bytes Class Attributes
A 3x3 72 double
C 1x3 266 cell
S 1x1 174 string

弃用通知: 不建议在新代码中使用旧版函数 date 和 clock。它们灵活性较差且可能存在歧义。

处理日期和时间信息的现代且推荐方式是使用 datetime 对象。

% 获取当前日期和时间
now_dt = datetime('now')
% 只获取今天的日期(时间是午夜)
today_dt = datetime('today')
% 您可以轻松执行算术和格式化操作
yesterday_dt = today_dt - days(1);
disp(['昨天是: ', datestr(yesterday_dt)])

预期输出(将反映当前日期):

now_dt =
datetime
15-Oct-2024 10:30:00
today_dt =
datetime
15-Oct-2024
昨天是: 14-Oct-2024