MATLAB变量
来源:互联网 发布:中国海外并购数据 编辑:程序博客网 时间:2024/05/21 20:58
序言
在**Matlab**中,变量名由A~Z、a~z、数字和下划线组成,且变量的第一个字符必须是字母. 尽管变量名可以是任意长度, 但是Matlab只识别名称的前N=namelengthmax个字符, 这里namelengthmax函数给出Matlab所能考虑的最大变量名长度. Matlab是区分大小写的,如a和A是不同的两个变量,Matlab自带的命令通常都是由小写字母组成,例如abs(A)是计算出A的绝对值. Matlab中的语法不同于Java、C,其变量的定义和创建可以直接通过赋值来实现,而不需要单独声明,也不需要指定其数据类型. 如果需要使用一个矩阵,可以直接给其元素赋值,不需要指定它的具体维度.
正文
在MATLAB环境下,每一个变量是一个数组或矩阵。矩阵中的元素可以是数、字符、逻辑表达式(logic states)、true或false、甚至是Matlab结构体. 基于这个前提,Mathlab能够处理非常多种类的数据。例如一个单独的数即一个标量在Matlab中是一个1×1的矩阵,一个行向量为1×N的矩阵,一个列向量为N×1的矩阵,一个多项式也是用一个向量来表示等等。Matlab也支持二维以上的矩阵,称为多维数组(arrays),例如一个三维数组的元素可以用三维坐标值来定位.
不管用户使用什么类型的数据(数、字符、逻辑true或false),Matlab都会将这些数据以矩阵或数组的形式存放. 例如字符串’Hello World’是一个1×11的矩阵,其矩阵元素是一个个单独的字符.
在一个简单的方法,您可以指定变量。例如,
x = 3 % defining x and initializing it with a value
MATLAB将执行上面的语句,并返回以下结果:
x = 3
它创建了一个1-1的矩阵名为x和的值存储在其元素。让我们查看另一个例子,
x = sqrt(16) % defining x and initializing it with an expression
MATLAB将执行上面的语句,并返回以下结果:
x = 4
请注意:
一旦一个变量被输入到系统中,你可以引用它。
变量在使用它们之前,必须有值。
当表达式返回一个结果,不分配给任何变量,系统分配给一个变量命名ans,以后可以使用。
例如,
sqrt(78)
MATLAB将执行上面的语句,并返回以下结果:
ans =8.8318
可以使用这个变量 ans:
9876/ans
MATLAB将执行上面的语句,并返回以下结果:
ans = 1.1182e+03
让我们来看看另一个例子:
x = 7 * 8;y = x * 7.89
MATLAB将执行上面的语句,并返回以下结果:
y = 441.8400
多个赋值
可以有多个任务在同一行。例如,
a = 2; b = 7; c = a * b
MATLAB将执行上面的语句,并返回以下结果:
c =14
我已经忘记了变量!?
who 命令显示所有已经使用的变量名。
who
MATLAB将执行上面的语句,并返回以下结果:
Your variables are:a ans b c x y
whos 命令显示多一点有关变量:
当前内存中的变量
每个变量的类型
内存分配给每个变量
无论他们是复杂的变量与否
whos
MATLAB将执行上面的语句,并返回以下结果:
Name Size Bytes Class Attributes a 1x1 8 double ans 1x1 8 double b 1x1 8 double c 1x1 8 double x 1x1 8 double y 1x1 8 double
clear命令删除所有(或指定)从内存中的变量(S)。
clear x % it will delete x, won't display anythingclear % it will delete all variables in the workspace % peacefully and unobtrusively
长任务
长任务可以通过使用省略号(…)延伸到另一条线路。例如,
initial_velocity = 0;acceleration = 9.8;time = 20;final_velocity = initial_velocity ... + acceleration * time
MATLAB将执行上面的语句,并返回以下结果:
final_velocity = 196
格式命令
默认情况下,MATLAB 四个小数位值显示数字。这就是所谓的 short format.
但是,如果想更精确,需要使用 format 命令。
长(long ) 命令格式显示小数点后16位。
例如:
format longx = 7 + 10/3 + 5 ^ 1.2
MATLAB将执行上面的语句,并返回以下结果:
x = 17.231981640639408
另外一个例子,
format shortx = 7 + 10/3 + 5 ^ 1.2
MATLAB将执行上面的语句,并返回以下结果:
x = 17.2320
空格格式命令回合到小数点后两位数字。例如,
format bankdaily_wage = 177.45;weekly_wage = daily_wage * 6
MATLAB将执行上面的语句,并返回以下结果:
weekly_wage = 1064.70
MATLAB 显示大量使用指数表示法。
短格式e命令允许以指数的形式显示小数点后四位,加上指数。
例如,
format short e4.678 * 4.9
MATLAB将执行上面的语句,并返回以下结果:
ans = 2.2922e+01
format long e命令允许以指数的形式显示小数点后四位,加上指数。例如,
format long ex = pi
MATLAB将执行上面的语句,并返回以下结果:
x = 3.141592653589793e+00
format rat 格式大鼠命令给出最接近的有理表达式,从计算所得。例如,
format rat4.678 * 4.9
MATLAB将执行上面的语句,并返回以下结果:
ans = 2063/90
创建向量
向量是一维数组中的数字。 MATLAB允许创建两种类型的矢量:
行向量
列向量
创建行向量括在方括号中的元素的集合,用空格或逗号分隔的元素。
例如,
r = [7 8 9 10 11]
MATLAB将执行上面的语句,并返回以下结果:
r = Columns 1 through 4 7 8 9 10 Column 5 11
另外一个例子,
r = [7 8 9 10 11];t = [2, 3, 4, 5, 6];res = r + t
MATLAB将执行上面的语句,并返回以下结果:
res = Columns 1 through 4 9 11 13 15 Column 5 17
创建列向量通过内附组方括号中的元素,使用分号(;)分隔的元素。
c = [7; 8; 9; 10; 11]
MATLAB将执行上面的语句,并返回以下结果:
c = 7 8 9 10 11
创建矩阵
矩阵是一个二维数字阵列。
在MATLAB中,创建一个矩阵每行输入空格或逗号分隔的元素序列,最后一排被划定一个分号。例如,创建一个3×3的矩阵:
m = [1 2 3; 4 5 6; 7 8 9]
MATLAB将执行上面的语句,并返回以下结果:
m = 1 2 3 4 5 6 7 8 9
MATLAB预定义变量
Matlab中有一些预定变量,这些预定义变量具有相应的初始值,其中比较常用的包括:
pi: 返回π,即3.141592653589793.i,j: 定义为,虚数单位. 如果用户给这两个变量赋了其他的值,则它们不再是预定义常数.如果赋值之后希望恢复这其虚数单位值,可以通过clear命令恢复.inf: 定义为1/0. 当出现被0除时, Matlab就会返回inf,且不中断执行而继续计算.NaN: 定义为”Not a Number”,表示不是一个合法的数.eps: 返回机器的精度,定义为与1最接近的可代表的浮点数之间的差. 被用户赋值后不能由clear恢复.
变量类型(作用域)
Matlab中的变量类型(Types of Variables)分为局部变量(Local Variable), 全局变量(Global Variable)和局部静态变量(Persistent Variables).
(1)局部变量: 如果一个函数内的变量没有特别声明, 那么这个变量只在函数内部使用, 即为局部变量. (2)全局变量: 全局变量可以被多个不同的函数和基本工作空间(base workspace)共享. 如果一个函数需要使用全局变量a , 则必须在函数中(一般在函数的开始部分)声明该a为global: global a. 如果这个函数包含若干个子函数, 且子函数也需要访问全局变量a, 那么各个子函数中也都要加上global a. 如果某个函数更改了a的值, 那么之后其他所有声明了a的函数都可以得到这个新值. 如果某个函数需要访问Matlab命令行中的一个变量b, 那么需要在命令行中声明b为global. (3)局部静态变量: 局部静态变量只能在某个M文件中声明和使用, 且使用它的函数内需要有声明. 只要包含局部静态变量的函数存在于内存中(没有通过clear命令删除, 没有重新编辑), 该局部静态变量就一直存在.
- matlab变量
- Matlab---变量
- MATLAB变量
- MATLAB变量
- MATLAB中的特殊变量
- MATLAB符号变量赋值
- Matlab 变量和语句
- matlab 的global变量
- Matlab变量及其含义
- 8.1 MATLAB 变量
- matlab中的persistent变量
- matlab persistent静态变量
- matlab变量命名规则
- matlab里的静态变量
- matlab中变量无法累加
- matlab变量及运算符
- matlab常见变量和函数
- matlab中的persistent类型变量
- Android补间动画之ScaleAnimation、AlphaAnimation、RotateAnimation、TranslateAnimation、AnimationSet详解
- 关于<merge/>
- postman使用教程二
- linux和网络编程笔记
- 指数哥伦布码
- MATLAB变量
- mysql 分库分表
- iOS-UITextField代理协议中方法
- Kotlin 初体验:主要特征与应用
- 拿什么来拯救焦头烂额的DBA?
- 2017年11场下半年热门电子商务相关会议电商峰会合集
- android-如何在jni中C/C++层打印log到logcat
- 如何做好一个合格程序员
- 【笔记+模板】图论中的树