基本操作
命令窗口操作:
clc
:删除以上的操作及输出;
clear x y z
删除上面的 x y z 三个变量的值- 输出格式的限定
>> format long
>> x= 2+11/16+2^1.2
x =
4.984896709994070
>> format short
>> x= 2+11/16+2^1.2
x =
4.9849
>> format short e //以科学计数法的形式输出
>> 7.2*3.1
ans =
2.2320e+01
- 输出 e^a
exp(a)
>> a =3
a =
3
>> exp(a)
ans =
2.0086e+01
>> exp(1)
ans =
2.7183e+00
>>
- 输出 平方根
sqrt(x)
>> x = sqrt(9)
x =
3
- 输出 自然对数
log(x)
- 输出绝对值
abs()
- 三角函数
cos(弧度值)、sin()、tan()
,反三角函数acos(弧度值)、asin()、atan()
,圆周率 pi 就是 pi
>> format rat // 分数形式输出
>> atan(pi/3)
ans =
1110/1373
- 复数
复数因子直接 就是i
>> a = 2+3i;b=1-1i;a+b
ans =
3 + 2i
注意:运行名为 my_m.m
的 .m
文件,就是在命令行输入 my_m 即可
- 函数积分
int(a,b,c,d)
:
说明:a表示被积函数,b表示被积变量,c表示下限,d表示上限
操作上需要定义
向量和矩阵
- 向量:即一维数值数组。定义如下:(就是用分号来换行)
>> a = [2;1;4]
a =
2
1
4
>> a = [2 1 4]
a =
2 1 4
>> a = [2,3,4]
a =
2 3 4
- 向量或者矩阵的转置,就是在 a上面加(
'
)即
>> a = [2,3,4]
a =
2 3 4
>> a'
ans =
2
3
4
- 已存向量中创建大向量
>> A = [1;2];B=[3;4];C=[A;B]
C =
1
2
3
4
- 创建一个等差向量元素,如
x = [xi :q : xe]
其中,xi
表示首元素,xe
表示尾元素,q
表示 等差
>> x = [0:0.1:1]
x =
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
- 对数值相隔相同的行向量
logspace(a,b,n)
即 10^a 到 10^b 之间的 n 个对数值等差的向量
>> logspace(1,2,5)
ans =
10.0000 17.7828 31.6228 56.2341 100.0000
- 返回向量元素的个数
length(A)
- 找出向量元素中的最大值
max(A)
和最小值min(A)
- 求向量的模:|A| 即:(1)
A.*A
就是向量内部元素自平方;(2)元素求和:sum(A)
;(3)求平方根sqrt(A)
abs(A)
求绝对值
>> A = [8 7 6 5 4 3 2 1]
A =
8 7 6 5 4 3 2 1
>> length(A)
ans =
8
>> max(A)
ans =
8
>> min(A)
ans =
1
>> A.*A
ans =
64 49 36 25 16 9 4 1
>> a = sum(A.*A)
a =
204
- 向量的点乘
dot(a,b)
(数量积,对应相乘再相加) - 叉乘
cross(a,b)
(向量积,叉积的长度|a×b|可以解释成这两个叉乘向量a,b共起点时,所构成平行四边形的面积),两边相乘再乘sin夹角
>> a= [1;4;7];b=[2;-1;5];
>> c = dot(a,b)
c =
33
>> e = cross(a,b)
e =
27
9
-9
- 向量元素的引用 例如:
A(2)
,A(:)
表示引用全部元素,A(4:6)
引用第4个到第6个元素组成的包含三个元素的向量
>> A=[4 43 6 7 8 9 10]
A =
4 43 6 7 8 9 10
>> A(2)
ans =
43
>> A(:)
ans =
4
43
6
7
8
9
10
>> A(4:6)
ans =
7 8 9
矩阵操作
矩阵的操作与向量的操作类似
- 矩阵的各个元素对应位置相乘(
.*
),矩阵相乘为(*
) - 对矩阵每个元素加一个常数,比如 2
C=2+A
- 矩阵的各个元素对应位置相除(
./
)左除,(.\
)右除 - 矩阵的各个元素进行平方(
.^2
)
>> A=[12 3;-1 6];B=[4 2;9 1];
>> C = A.*B
C =
48 6
-9 6
>> E = A*B
E =
75 27
50 4
>> b=2;
>> c= b+A;
>> c
c =
14 5
1 8
>> A./B
ans =
3.0000 1.5000
-0.1111 6.0000
>> A.\B
ans =
0.3333 0.6667
-9.0000 0.1667
>> B.^2
ans =
16 4
81 1
- 特殊类型矩阵
eye(n)
,生成: n x n 的单位矩阵
zeros(n)
或者zeros(m,n)
,生成:n x n 的 0矩阵
ones(n)
,ones(m,n)
,生成 1矩阵
>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> zeros(4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>> ones(4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
>> ones(2,4)
ans =
1 1 1 1
1 1 1 1
-
矩阵元素的引用
A(m,n)
,位置m 行 n 列元素
A(:,i)
,位于 i 列的所有元素
A(:,2:3)
,第2列 到 第3列的所有元素
A(2:3,1:2)
,第 2 行 到 第 3 行,第 1 列 到 第 2 列 此范围内的元素
A(2,:)= []
,[]
可以用来删除矩阵中的对应位置的元素
A([1,2,1],:)
,复制行,创建新矩阵,该指令意思是 第1行 复制 一次,第 2 行 复制一次,第 1 行 复制一次 -
行列式 与 线性系统求解
行列式计算det(A)
行列式不为 0 时,它是有解的,使用 右除\
,例如
5x + 2y - 9z = -18
-9x - 2y + 2z = -7
6x + 7y + 3z = 29
三元一次方程求解:
>> A = [5,2,-9;-9,-2,2;6,7,3];
>> det(A)
ans =
437
>> b =[-18;-7;29];
>> A\b
ans =
1.0000
2.0000
3.0000
- 矩阵的秩
rank(A)
- 求逆矩阵
inv(A)
与 伪逆矩阵pinv(A)
- 初等变换——简化梯形矩阵
rref(A)
>> A = [1,2;4,7]
A =
1 2
4 7
>> rref(A)
ans =
1 0
0 1
magic()
函数
>> magic(8)
ans =
64 2 3 61 60 6 7 57
9 55 54 12 13 51 50 16
17 47 46 20 21 43 42 24
40 26 27 37 36 30 31 33
32 34 35 29 28 38 39 25
41 23 22 44 45 19 18 48
49 15 14 52 53 11 10 56
8 58 59 5 4 62 63 1
>> sum(magic(8))
ans =
260 260 260 260 260 260 260 260
>> rref(magic(8))
ans =
1 0 0 1 1 0 0 1
0 1 0 3 4 -3 -4 7
0 0 1 -3 -4 4 5 -7
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
- LU分解求解方程组:
例如:
3x + 2y - 9z = -65
-9x + 5y + 2z = 16
6x + 7y + 3z = 5
>> A = [3 2 -9;-9 -5 2;6 7 3];b=[-65;16;5];
>> [L,U]=lu(A)
L =
-0.3333 0.0909 1.0000
1.0000 0 0
-0.6667 1.0000 0
U =
-9.0000 -5.0000 2.0000
0 3.6667 4.3333
0 0 -8.7273
>> x = U\(L\b)
x =
2.0000
-4.0000
7.0000