一、基础操作
1. 清除MATLAB里面的valuable
clear valuable名字
2. MATLAB里面的keyword
pi —— 圆周率π
Inf —— ∞
NaN —— not a number
eps —— 2.2204e-016(无穷小)
ans —— 变量结果存储
i,j —— 复数
3. MATLAB里面的priority
valuable > building function
所以不要将valuable定义为function的name
错误示例:
cos = 'abcdef'
cos(3)
输出:c
此时的cos不再是function,而是valuable
4.format用法
>> format long
>> pi
ans = 3.141592653589793
>> format short
>> pi
ans = 3.1416
>> format shortE
>> pi
ans = 3.1416e+00
>> format longE
>> pi
ans = 3.141592653589793e+00
>> format rat 变为有理数输出
>> pi
ans = 355/113
>> format bank 保留两位输出
>> pi
ans = 3.14
5.MATLAB其他小技巧
clear —— 清除某一个变量
>>clear a 清除a这个valuable
clc —— 把MATLAB的计算页面全部清除
who —— 显示当前的valuable信息
whos —— 显示当前的valuable详细信息
二、向量与矩阵的输入
行之间用空格隔开,列之间用分号隔开
1.向量的输入
>> a = [1 2 3]
a =
1 2 3
>> b = [2;3;4]
b =
2
3
4
>> a*b
ans =
20
>> b*a
ans =
2 4 6
3 6 9
4 8 12
2. 矩阵的输入
>> c = [1 2 3;4 5 6;7 8 9]
c =
1 2 3
4 5 6
7 8 9
3.矩阵的元素提取
>> c = [1 2 3;4 5 6;7 8 9]
c =
1 2 3
4 5 6
7 8 9
方法1:
>> c(3) 矩阵是从上到下,从左到右一次编号,括号里面的数字表示编号
ans =
7
>> c([1 3 5])
ans =
1 7 5
>> c([1 3;1 3])
ans =
1 7
1 7
方法2:
>> c(1,2) 逗号前为行数,逗号后为列数
ans =
2
>> c([1 3],[1 3]) 逗号前为行数,逗号后为列数,结果是两者的交集
ans =
1 3
7 9
4. 矩阵元素的替换
>> c
c =
1 2 3
4 5 6
7 8 9
>> c(1,2)=100
c =
1 100 3
4 5 6
7 8 9
5.等差矩阵的输入
>> e = [1:1:5] 第一个数字表示等差数列的首相,第二个数字表示等差数列的差值,第三个数字表示末相
e =
1 2 3 4 5
>> d = [1:5] 如果差值为1可以省略
d =
1 2 3 4 5
>> f = [1:2:5]
f =
1 3 5
>> g = [1:5;1:2:9;1:3:13]
g =
1 2 3 4 5
1 3 5 7 9
1 4 7 10 13
6. 如何消去矩阵的某一行或者某一列
>> c
c =
1 2 3
4 5 6
7 8 9
>> c(1,:)=[] 消去某一行
c =
4 5 6
7 8 9
>> c(:,1)=[] 消去某一列
c =
5 6
8 9
7.矩阵的合并
>> a2 = [1 2 3];
>> a3 = [4 5 6];
>> a4 = [a2 a3]
a4 =
1 2 3 4 5 6
>> a5 = [a2,a3]
a5 =
1 2 3 4 5 6
>> a6 = [a2 ; a3]
a6 =
1 2 3
4 5 6
8. 矩阵的四维运算
>> aa = [1 2 3;4 5 6;7 8 9]
aa =
1 2 3
4 5 6
7 8 9
>> bb = [1 2 3;4 5 6; 7 8 9]
bb =
1 2 3
4 5 6
7 8 9
>> aa+bb
ans =
2 4 6
8 10 12
14 16 18
>> aa-bb
ans =
0 0 0
0 0 0
0 0 0
>> aa*bb
ans =
30 36 42
66 81 96
102 126 150
>> aa/bb
警告: 矩阵接近奇异值,或者缩放错误。结果可能不准确。RCOND = 1.652118e-18。
ans =
1 0 0
0 1 0
0 0 1
>> aa.*bb .*是指每一项逐个计算,和矩阵加法的运算方式一样
ans =
1 4 9
16 25 36
49 64 81
>> aa./bb ./是指每一项逐个计算,和矩阵加法的运算方式一样
ans =
1 1 1
1 1 1
1 1 1
>> cc=2;
>> aa+cc 矩阵和实数相加是每一项都加这个实数
ans =
3 4 5
6 7 8
9 10 11
>> aa-cc 矩阵和实数相减是每一项都减这个实数
ans =
-1 0 1
2 3 4
5 6 7
>> aa*cc 矩阵和实数相乘是每一项都乘这个实数
ans =
2 4 6
8 10 12
14 16 18
>> aa/cc 矩阵和实数除加是每一项都除这个实数
ans =
0.500000000000000 1.000000000000000 1.500000000000000
2.000000000000000 2.500000000000000 3.000000000000000
3.500000000000000 4.000000000000000 4.500000000000000
>> aa' 矩阵的转置
ans =
1 4 7
2 5 8
3 6 9
9. 几种常见的特殊矩阵
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
>> ones(3)
ans =
1 1 1
1 1 1
1 1 1
>> zeros(3,4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
>> ones(3,4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
>> diag([1 2 3])
ans =
1 0 0
0 2 0
0 0 3
10. 矩阵的一些辅助功能
>> dd = [1 2 3;0 5 6;7 0 9]
dd =
1 2 3
0 5 6
7 0 9
>> find(dd==6) 查找矩阵中等于6的元素的序号
ans =
8
>> sort(dd) 将矩阵的每一列按从小到大的顺序排列
ans =
0 0 3
1 2 6
7 5 9
>> sortrows(dd) 将矩阵每一行按第一列的元素大小进行排列
ans =
0 5 6
1 2 3
7 0 9
>> size(dd) 输出矩阵的行数 列数
ans =
3 3
>> length(dd) 输出矩阵的列数
ans =
3
>> max(dd) 找出矩阵每一列的最大值
ans =
7 5 9
>> max(max(dd)) 找出矩阵的所有元素的最大值
ans =
9
>> min(dd) 找出矩阵每一列的最大值
ans =
0 0 3
>> min(min(dd)) 找出矩阵的所有元素的最大值
ans =
0
>> sum(dd) 算出矩阵每一列的和
ans =
8 7 18
>> mean(dd) 算出矩阵每一列的平均值
ans =
2.666666666666667 2.333333333333333 6.000000000000000
>> mean(dd)' 即可算出矩阵每一行的平均值