CHAPTER 2 ——第二章 matlab编程的基础知识主要内容 ■ Variables, operators, and expressions ■ Arrays (including vectors and matrices) ■ Basic input and output ■ Repetition (for) ■ Decisions (if)
主要内容
2.1 VARIABLES 变量
2.2 THE WORKSPACE 工作区
clear命令
who 和 whos 命令
MATLAB中的通配符
向工作区添加常用常量
2.1 VARIABLES 变量 变量是编程的基础。从某种意义上说,编程的艺术在于:
Getting the right values in the right variables at the right time
在正确的时间在正确的变量中获得正确的值
MATLAB变量的命名规则MATLAB变量的命名规则如下:
变量名必须以字母开头,可以包含字母、数字和下划线; 变量的名称可以是你任意喜欢的长度,但是MATLAB只记得前63个字符(要在您的版本中检查这一点,请在MATLAB桌面的命令窗口中执行命令namelengthmax)
MATLAB只记得变量名称的前63个字符是因为它使用了63位的哈希函数来存储变量名称。哈希函数是一种将任意长度的输入转换为固定长度输出的算法。在MATLAB中,为了节省内存并提高效率,变量名称被哈希成一个固定长度的值,然后存储在内存中。由于哈希函数的限制,只有前63个字符的变量名称会被正确地哈希存储。如果变量名称超过63个字符,MATLAB会将其截断为前63个字符,然后再进行哈希存储。
下面是一些MATLAB变量命名的例子:
my_variable:一个带下划线的变量名,表示一个字符串; myStruct:一个带大写字母的变量名,表示一个结构体; is_valid:一个带下划线的变量名,表示一个逻辑变量。 补充说明: 变量命名应当具有描述性,能够清晰地表达变量所代表的含义。例如:
num_students % 表示学生数量 avg_grade % 表示平均成绩 is_valid % 表示是否有效
变量的创建只需在命令行或程序中为其赋值即可,例如:
a=1
MATLAB将所有变量称为数组,无论它们是单值(标量)还是多值(向量或矩阵)。换句话说,标量是一个1 × 1的数组——一个只有一行和一列的数组,当然,它是一个只有一项的数组。
MATLAB是区分大小写的,这意味着它可以区分大写字母和小写字母。
命令名称和函数名称也可以区分大小写。在运行内置函数和命令时,不能使用大写字母!
2.2 THE WORKSPACE 工作区 在会话期间创建的所有变量将保留在工作区中,直到清除它们。可以在会话期间的任何阶段使用或更改它们的值。
balance = 1000; rate = 0.09; interest = rate * balance; balance = balance + interest; disp( 'New balance:' ); disp( balance );
这里的每个变量占用8字节的存储空间。一个字节是一个字符所需的计算机内存量(一个字节相当于8位)。这些变量的大小都是“1 × 1”,因为它们是标量.
clear命令clear命令从工作空间中删除所有变量。一个特定的变量可以从工作区中移除(例如,clear rate, 只是清楚rate变量)。也可以清除多个变量(例如, clear rate balance)。变量名之间用空格分隔,而不是逗号。
桌面上的工作区浏览器(查看器)提供了一个方便的工作区可视化表示。您可以使用Array Editor查看甚至更改工作空间变量的值。要激活Array Editor,请单击Workspace浏览器中的变量,或者右键单击以获得更通用的上下文菜单。从上下文菜单中,您可以以各种方式绘制工作空间变量的图形。
工作区查看器 who 和 whos 命令who
命令列出工作空间中所有变量的名称。whos
命令列出了每个变量的大小
在MATLAB中,who
和whos
是两个常用命令,用于查看当前工作空间中的变量信息。
who
命令用于列出当前工作空间中的所有变量名,并按字母顺序排序。例如:
>> a = 1; >> b = 'hello' ; >> c = [1, 2, 3]; >> who Your variables are: a b c
whos
命令与who
命令类似,但是它会显示更详细的变量信息,包括变量名、大小、类型、占用内存等。此命令将列出当前工作空间中的所有变量及其详细信息。例如:
>> whos Name Size Bytes Class Attributes a 1x1 8 double b 1x5 10 char c 1x3 24 double
whos命令还支持使用通配符
来查找符合条件的变量名,例如:
>> whos a* Name Size Bytes Class Attributes a 1x1 8 double
MATLAB中的通配符通配符是一种特殊字符,用于在搜索和匹配字符串时代替其他字符或字符集。在计算机科学中,通配符通常与文件名和路径名相关联,但也可以在其他字符串匹配场景中使用。通配符可以帮助用户快速查找符合特定模式的字符串,从而提高效率。
可以使用通配符*
来匹配任意数量的字符,或使用?
来匹配单个字符。例如:
whos a* % 显示所有以 a 开头的变量 whos *x* % 显示所有包含 x 的变量 whos ?abc % 显示所有以 abc 结尾的单字符变量
在使用通配符时,需要注意以下几点:
通配符只能用于字符串的匹配,不能用于数值或逻辑运算。
通配符匹配时区分大小写,例如,*a
可以匹配'apple'但不能匹配'Apple'。
通配符匹配时只能匹配一个字符或多个字符,不能匹配空格或其他特殊字符。
通配符可以与其他字符一起使用,例如,*a*
可以匹配任意包含字母“a”的字符串。
除了who和whos命令外,MATLAB还提供了其他一些命令用于查看变量信息,例如:
向工作区添加常用常量如果经常在MATLAB会话中使用相同的物理或数学常量,则可以将它们保存在.m
文件中,并在会话开始时运行该文件。例如,以下语句可以保存在myconst.m
中:
g = 9.81; % acceleration due to gravity avo = 6.023e23; % Avogadro’s number e = exp(1); % base of natural log pi_4 = pi / 4; log10e = log10( e ); bar_to_kP = 101.325; % atmospheres to kiloPascals
如果在会话开始时运行myconst,这六个变量将成为工作空间的一部分,并且在会话的其余时间或清除它们之前都可用。这种使用MATLAB的方法就像一个记事本(它是许多方法之一)。