变量
程序中定义变量用于保存和处理数据。
我们需要使用内存时,就定义某种数据类型的变量。
编译器会根据数据类型分配一定的内存空间,程序通过变量名访问内存。
本质上,变量代表一段可操作的内存,是内存的符号化表示
注意matlab的变量只能以字母开头,不可以下划线开头,这是和其他语言的区别。
>> isvarname('_x')
ans =
logical
0
>> isvarname('x_')
ans =
logical
1
变量名最多包含63个字符, 后面的被忽略。
局部变量
每个函数都有局部变量,存储在函数的独立的工作区里,和其他函数的局部变量以及主工作区的变量是分开存储的。函数调用结束,他们就会被删除。在平时debug的时候肯定能观察到,深有体会。
全局变量
在全部工作区(所有函数的局部工作区和主工作区)有效。
在一个工作区改变值, 其他工作区也会随即改变。
在函数开头位置定义, 用大写字母。
global X_val
使用它的目的是: 减少数据传递次数
使用全局变量有风险, 容易造成错误, 具体参见其原理
永久变量
用persistent声明
只在m文件中定义和使用, 不能在命令行声明
>> persistent a
仅在函数中允许使用 PERSISTENT 声明。
只允许声明它的函数存取
声明他的函数退出时,不从内存中清理它
特殊变量
>> pi
ans =
3.1416
>> eps
ans =
2.2204e-16
>> inf
ans =
Inf
>> nan
ans =
NaN
>> i
ans =
0.0000 + 1.0000i
>> j
ans =
0.0000 + 1.0000i
>> realmin
ans =
2.2251e-308
>> realmax
ans =
1.7977e+308
>> bitmax
未定义函数或变量 'bitmax'。
是不是想输入:
>> intmax
ans =
int32
2147483647
>> beep
>>
上面的bitmax大概是打错了,应该是intmax
最后一个beep,电脑真的发出了声,不过是平时普通的matlab报错声,我以为会像单片机那样真的bee, bee, bee······
关键字
这样就不需要查手册啥的啦
>> iskeyword('end')
ans =
logical
1
>> iskeyword('End')
ans =
logical
0