MATLAB - 预定义变量
MATLAB - 内置常量和特殊值
Section titled “MATLAB - 内置常量和特殊值”MATLAB 提供了一组内置名称,用于表示常见的数学常量和特殊值。尽管您可以用自己的变量赋值覆盖它们,但强烈不建议这样做,因为它会成为一种最佳实践。这样做可能导致混乱且难以调试的错误,尤其是在使用依赖于这些标准值的函数时。
数值常量和特殊值
Section titled “数值常量和特殊值”这些是您将遇到的最常见的内置值。
| 名称 | 描述和现代最佳实践 |
|---|---|
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 处的间隙。 |
示例:使用常量
Section titled “示例:使用常量”% 计算半径为 5 的圆的面积radius = 5;area = pi * radius^2;
% 使用推荐语法创建一个复数complex_num = -2 + 1i * 5;
% 演示 NaN 和 Inf 如何产生val1 = 0/0; % 结果为 NaNval2 = 1/0; % 结果为 Inf
disp(['面积: ', num2str(area)])disp(['复数: ', num2str(complex_num)])disp(['0/0 是: ', num2str(val1)])disp(['1/0 是: ', num2str(val2)])预期输出:
面积: 78.5398复数: -2+5i0/0 是: NaN1/0 是: Inf工作区和命令行变量
Section titled “工作区和命令行变量”| 名称 | 描述 |
|---|---|
ans | 一个临时变量,用于存储最近未赋值给变量的命令的结果。它在命令窗口中进行快速计算时很有用,但不应在脚本中依赖它。 |
示例:使用 ans
Section titled “示例:使用 ans”% 在命令窗口中...5 * 10
ans =
50
ans / 2
ans =
25重要命令(非变量)
Section titled “重要命令(非变量)”原始教程将一些命令和关键字列为变量。正确区分它们非常重要。
| 命令/关键字 | 描述 |
|---|---|
whos | 一个列出当前工作区中所有变量的命令,包括它们的大小、内存使用情况和数据类型。 |
global | 一个关键字,用于声明一个可以在不同函数和基本工作区中访问的变量。请谨慎使用,因为它会使代码更难调试。 |
示例:使用 whos
Section titled “示例:使用 whos”% 创建一些不同类型的变量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现代日期和时间处理
Section titled “现代日期和时间处理”弃用通知: 不建议在新代码中使用旧版函数 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