MATLAB 中的变量名称
变量是一个命名内存位置,用于存储可用于执行特定操作集的不同类型的数据。它可以被认为是一个在内存中保存一些值的容器。 Matlab 工作区存储会话期间使用的所有变量。该工作区不仅处理新变量的创建,而且还支持在执行命令时重用现有变量。 Matlab 环境中的每个变量都被视为一个矩阵或不同数据类型的数组。在 Matlab 中,使用赋值 '='运算符来分配变量。
笔记:
- 创建变量后,我们可以稍后在我们的程序中使用它。
- 在使用变量之前,必须为变量赋值。
- 如果表达式返回结果而未分配给任何变量,系统会隐式分配并存储该值给名为“ans”的特殊变量。但是 ans 变量是特定于当前工作区的,并且ans的值会经常变化,这就是为什么不建议在脚本或函数使用 ans 的原因。
示例 1:
Matlab
% MATLAB code for defining a and initializing
% it with a value 10 using assignment operator '='
a = 10
Matlab
% MATLAB code for calculates an expression
% and stores value 13 in variable b
b = sqrt(169)
Matlab
% MATLAB code to stores the expression
% in special variable 'ans'
sqrt(169)
Matlab
% MATLAB code for check variable
% is keyword or not
Test=iskeyword('if') % this statement returns
% logical True (1) as a result as 'if' is a keyword
% in the Matlab otherwise returns false.
iskeyword if % this statement uses the Matlab
% command format and results in ans=1.
Matlab
% MATLAB code for print all keyword
iskeyword % returns a list of all Matlab keywords.
Matlab
% MATLAB code for isvarname
isvarname Number_1
Matlab
% MATLAB code for isvarname()
Test= isvarname(Digit_1)
Matlab
% MATLAB code for check if there is no
% existing variables or functions name. In case it exists,
% remove the variable from the memory with the clear() function.
exist varname
Matlab
% MATLAB code for gemvarname()
var_name = genvarname({'Pen', 'Pen', 'Pen', 'Pen'})
Matlab
% MATLAB code for genvarname() with different parameters
a = ["Pen", "Eraser", "Pencil", "Box" ]
var_name=genvarname(a,"Box")
输出:
a = 10
示例 2:
MATLAB
% MATLAB code for calculates an expression
% and stores value 13 in variable b
b = sqrt(169)
输出:
b = 13
示例 3:
MATLAB
% MATLAB code to stores the expression
% in special variable 'ans'
sqrt(169)
输出:
ans = 13
创建变量的规则:
变量名是我们可以存储值的内存位置的名称。命名变量的一些规则是:
- 变量名应以字母开头,后跟数字、下划线或字母。
- 不要使用 Matlab 关键字作为变量名。
- Matlab 区分大小写,即小写字母和大写字母的处理方式不同。例如,变量名 'PRICE' 和 Price 是不同的。
- 变量名包含的字母不能超过 name length max 字符。
- 在 Matlab 中,变量名中任何位置的特殊符号在语法上都是无效的。
- 避免命名由预定义的 Matlab 变量名称提供的变量名称。
Examples of valid variable names: | Examples of invalid variable names: |
---|---|
Principal | 8a |
F_Value | 1_Digit |
Digit_1 | Roll_No! |
a10 | end |
Roll_no | if |
检查变量名是否为Matlab 关键字:
为了检查变量名是否是 MATLAB 关键字,MATLAB 提供了一个内置函数iskeyword()。此关键字确定输入是否为 MATLAB 关键字。
Syntax:
v = iskeyword(txt)
iskeyword
示例 1:
MATLAB
% MATLAB code for check variable
% is keyword or not
Test=iskeyword('if') % this statement returns
% logical True (1) as a result as 'if' is a keyword
% in the Matlab otherwise returns false.
iskeyword if % this statement uses the Matlab
% command format and results in ans=1.
Test = logical
1
ans = logical
1
示例 2:
MATLAB
% MATLAB code for print all keyword
iskeyword % returns a list of all Matlab keywords.
输出:
检查输入是否为有效的变量名:
使用 isvarname() 来检查输入是否是有效的变量名。此函数确定输入是否为有效的变量名称。如果它是有效的 MATLAB 变量名称,则 isvarname函数返回逻辑值 1 (true)。否则,它返回逻辑 0 (false)。
Syntax:
t = isvarname(s)
isvarname s
示例 1:
MATLAB
% MATLAB code for isvarname
isvarname Number_1
输出:
ans = logical
1
示例 2:
MATLAB
% MATLAB code for isvarname()
Test= isvarname(Digit_1)
输出:
Test = logical
1
变量名和函数名冲突:
Matlab 提供了一些预定义的函数,例如 pi、ans、i、j、clock、date、eps,这些函数不能用作变量名,因为它们会在变量名和函数名之间产生冲突。通常,变量名优先于导致意外结果的函数名。
要检查变量名称是否已与函数:
例子:
MATLAB
% MATLAB code for check if there is no
% existing variables or functions name. In case it exists,
% remove the variable from the memory with the clear() function.
exist varname
输出:
ans=0
genvarname()
此函数(生成变量名)用于构造有效且唯一的变量名。它返回可用作合法变量名称的字符串或字符数组。参数 str 可以是字符串、字符串数组、字符数组或包含字符向量的元胞数组。所有返回的元素都是唯一的。
Syntax:
varname = genvarname(str)
varname = genvarname(str, exclusions)
here genvarname(str, exclusions) returns a legal variable name that is different from any name listed in the exclusions input. The argument exclusions can be a string, a string array, a character array, a cell array of character vectors.
示例 1:
MATLAB
% MATLAB code for gemvarname()
var_name = genvarname({'Pen', 'Pen', 'Pen', 'Pen'})
输出:
var_name = 1X4 cell
'Pen_1' 'Pen_2' 'Pen_3' 'Pen_4'
示例 2:
MATLAB
% MATLAB code for genvarname() with different parameters
a = ["Pen", "Eraser", "Pencil", "Box" ]
var_name=genvarname(a,"Box")
输出:
var_name= 1x4 string
"Pen" "Eraser" "Pencil" "Box1"