MatLab学习笔记(二) | StriveZs的博客

MatLab学习笔记(二)

** 数值表示、变量及表达式**

变量命名规则:

  • 变量名、函数名对字母的大小写是敏感的。
  • 变量名第一个字母必须是英文字母。(这里和其他语言不同)
  • 变量名可以包含数字、字母、下划线
  • 变量名不能包含空格和标点符号
  • 变量名最多可以包含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

StriveZs wechat
Hobby lead  creation, technology change world.
  • Post author: StriveZs
  • Post link: 1435.html
  • Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.