** 数值表示、变量及表达式**
变量命名规则:
- 变量名、函数名对字母的大小写是敏感的。
- 变量名第一个字母必须是英文字母。(这里和其他语言不同)
- 变量名可以包含数字、字母、下划线
- 变量名不能包含空格和标点符号
- 变量名最多可以包含63个字符
Matlab中已经预定义的变量:
ans
最近计算的正确结果的变量名(实时更新)
eps
Matlab定义的正的极小值=2.2204e-16
pi
圆周率π
inf
无限大
i或j
虚数单元、sqrt(-1)
NaN
非数,0/0
基本的运算符
运算
Matlab运算符
Matlab表达式
加
a+b
减
a-b
乘
a*b
除
/
a/b
幂
^
a^b
复数及其运算 Matlab中的复数表达式为 ai+b ,在matlab中把复数作为一个整体来计算 例如:
> z1 = 3 + 4i ; z2 = 1 + 2i;
> z3 = z1 + z2;
> z3
z3 =
4.0000 + 6.0000i
Matlab中矩阵(数组)的表示 数组的定义和其他语言的数组差不多,大家只要有C语言基础的话都是可以理解的(下标都是从1开始的)。 一般把一维数组都称为向量,二维数组称为矩阵 对于有效矩阵,就是标准矩阵 行数等于列数 在matlab中数组元素的访问通过 数组名(行号,列号) 来访问。 创建一维数组: 第一种方法: 用[ ]直接创建 数组名=[1,2,3等其他数值] 习惯上用逗号分隔开
> a = [1,3,pi,3+5*i]
a =
1.0000 + 0.0000i 3.0000 + 0.0000i 3.1416 + 0.0000i 3.0000 + 5.0000i
第二种方法: 使用冒号“:”进行创建 格式: 数组名=起始数值(:间隔):结束数值
> b = 1:3:10
b =
1 4 7 10
第三种方法: 利用函数linspace创建 语法: 数组名=linspace(x1,x2,n) x1为第一个元素,x2位第二个元素,n为总的元素个数 ,元素之间的间隔 = (x2-x1)/(n-1) 例如:
> c = linspace(1,10,3)
c =
1.0000 5.5000 10.0000
第四种方法:利用函数logspace 创建列向量(使用“;”冒号):
> d = [1;2;3]
d =
1
2
3
使用单引号“’”可以将矩阵转置
> e = [1,2,3;4,5,6]
e =
1 2 3
4 5 6
> e’
ans =
1 4
2 5
3 6
第五种 Var = expression var为变量名 expression为合法的表达式 同样里面可以用一个数组来初始化另一个数组
> f = [a,6+1,7]
f =
1.0000 + 0.0000i 3.0000 + 0.0000i 3.1416 + 0.0000i 3.0000 + 5.0000i 7.0000 + 0.0000i 7.0000 + 0.0000i
创建二维数组: 第一种直接创建(使用[ ]):
> a = [1,2,3;4,5,6;7,8,9]
a =
1 2 3
4 5 6
7 8 9
第二种使用函数的方法创建: ones(生成全1矩阵) zeros(生成全0矩阵)、reshape(将一维数组按照要求转化为二维数组) 用法类似python中numpy使用
> ones(3,3)
ans =
1 1 1
1 1 1
1 1 1
> zeros(3,3)
ans =
0 0 0
0 0 0
0 0 0
> a = 1:2:11
a =
1 3 5 7 9 11
> b = reshape(a,2,3)
b =
1 5 9
3 7 11
使用一维数组给全0二维矩阵赋值时的访问顺序(要注意)
c =
1 2 3 4 5 6 7 8 9
> ans(:) = c
ans =
1 4 7
2 5 8
3 6 9
下表访问:(和其他编程语言相似都是通过下标访问在matlab中使用()来,但是注意下标是从1开始的) 可以同时通过下标访问多个元素:
> a = linspace(1,10,5)
a =
1.0000 3.2500 5.5000 7.7500 10.0000
> a([1,3,5])
ans =
1.0000 5.5000 10.0000
同样可以多次重复访问某一元素
c =
1 2 3 4 5 6 7 8 9
> c([1,2,1,2,1,2])
ans =
1 2 1 2 1 2
通过将间隔改为负数可以得到逆序
> c
c =
1 2 3 4 5 6 7 8 9
> c(4:-1:2)
ans =
4 3 2
end可以得到同指定下标到末尾下标的数组
> c(3:end)
ans =
3 4 5 6 7 8 9
也可以通过下标直接修改元素的值:
> c(1)=0
c =
0 2 3 4 5 6 7 8 9
需要特别注意的是二维数组如果按照顺序排列是按照列来排序的,因此如果使用的单个下标的话,需要按照列来计算 例如:
> a = zeros(2,3)
a =
0 0 0
0 0 0
> b = 1:6
b =
1 2 3 4 5 6
> a(:) = b
a =
1 3 5
2 4 6
> a(2,1)
ans =
2
> a(2)
ans =
2
双下标寻址方式:
> a(:,[2,3]) = 8
a =
1 8 8
2 8 8
数组的length和size函数 Size函数返回变量的大小即变量数组的行数和列数
> size(a)
ans =
2 3
Length函数返回变量数组的最大维数
> b = [1:6]
b =
1 2 3 4 5 6
> length(a)
ans =
3
> length(b)
ans =
6
> b’
ans =
1
2
3
4
5
6
> length(b’)
ans =
6