核心思想:将MATLAB当成计算机。
ln就是nature log的意思,直接用 log:表示以e为底数
log10:表示以10为基底。同理,log2:表示以2为基底
matlab会将上一步计算的结果储存在ans中。
变量指定:左边是变量,右边是数值。(将右边的指定给左边)
变量指定时,区别大小写。不能以数值开头一个变量,但整个变量表达式里可以有数值。
inf:表示无穷
>> pi
ans =
3.1416
>> format long
>> pi
ans =
3.141592653589793
>> format rat %将某个无理数用分数表示
>> pi
ans =
355/113
在指令后面加分号:表示不显示运算结果
who:显示所有变量区的变量
whos:显示所有变量去变量的信息(变量名、变量大小、所占字节数)
如何输入一个向量和矩阵?
使用 [ ] 输入;
如下例:
>> a=[1 2 3 4] %行向量
a =
1 2 3 4
>> b=[1;2;3;4] %列向量
b =
1
2
3
4
下面是一些基本的matlab对矩阵的操作:
>> a*b
%% 1*1+2*2+3*3+4*4
% 1*4的行矩阵和4*1的列矩阵直接相乘,所得结果为一个数
ans =
30
>> b*a
%% 外积,矩阵相乘
% 4*1的列矩阵和1*4的行矩阵直接相乘,所得结果为一个4*4的方阵
ans =
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
矩阵的定义和对矩阵数据的取出:
矩阵数据的排序是从第一列开始竖着数依次为第一个元素、第二个元素…
>> A=[1 21 6;5 17 9;31 2 7]
%% 同一行用空格隔开,换行用;隔开
A =
1 21 6
5 17 9
31 2 7
>> A(1,2)
%% 调A的第一行第二列的数
ans =
21
>> A(2)
%% 竖着数第二个
ans =
5
>> A([1 3 5])
%% 一次性取出A的第一个、第三个、第五个元素
ans =
1 31 17
>> A([1 3;1 3])
%% 取出A的第一个和第三个元素使其为新矩阵的第一行;
%% 再次取出A的第一个和第三个元素使其为新矩阵的第二行
ans =
1 31
1 31
>> A([1 3],[1 3])
% 逗号前面表示row(行,逗号后面表示column(列
% 逗号前面表示取出A的第一个row和第三个row
% 逗号后面表示取出A的第一列和第三列
% 所以这句就是取出两者的重合区域
ans =
1 6
31 7
更改上面A矩阵中第一行第二列&第三行第二列的元素:
>> A([1 3],2)=[76 0]
A =
1 76 6
5 17 9
31 0 7
更改矩阵A中右上角2*2的子矩阵中的元素:
>> A([1 2],[2 3])=[0 0;0 0]
A =
1 0 0
5 0 0
31 0 7
>> A([1 2],:)
% 取A的第一行和第二行,全部列(因为用了:,这个可以参见下面的,表示全部的意思)
% 这句只是取出想要的,实际目的是把整个A变成这样
ans =
1 0 0
5 0 0
% 改变A
>> A(3,:)=[]
% 将A的第三行置空
A =
1 0 0
5 0 0
对字母表的字符进行操作:
>> str = 'a':2:'z'
% 和等差数列的用法一样:从a到z每隔两个取出一个字符,并组成一个新的字符串。
str =
'acegikmoqsuwy'
用上面取字符串的方法快速定义一个矩阵:
>> B=[1:5 ; 2:3:15 ; -2:0.5:0]
% 第一行放第一个operator,第二行放第二个,第三行放第三个
B =
1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 5.0000 8.0000 11.0000 14.0000
-2.0000 -1.5000 -1.0000 -0.5000 0
增广矩阵:
>> A = [1 2;3 4];
>> B = [9 9;9 9];
>> F=[A B]; %将两个矩阵按行拼在一起(前提是两个矩阵的行数相等)
F =
1 2 9 9
3 4 9 9
>> F=[A;B]
%将两个矩阵按列拼在一起(前提是两个矩阵的列数相等)
F =
1 2
3 4
9 9
9 9
矩阵和向量的四维运算:
A*B:就是矩阵的乘法计算:A的row乘B的column再相加
A.*B:表示A的第一个元素和B的第一个元素相乘,最后得到结果的第一个元素。
A^a:示例:A^2就表示A*A;
A.^a:示例:A.^2表示A中的每一个元素都取平方
A' :矩阵转置
特殊矩阵:
linspace(x1,x2):从x1到x2间等间隔取100个元素
eye(n)
zeros()
等
max函数:
>> A = [1 2 3;0 5 6;7 0 9]
A =
1 2 3
0 5 6
7 0 9
>> max(A)
% 取的是A的每一个列的最大值
ans =
7 5 9
>> max(max(A))
% 取出整个矩阵的元素最大值
ans =
9
>> A = [1 2 3;0 5 6;7 0 9]
A =
1 2 3
同理,sum取出的也是A 每一列的和
>> sum(A)
ans =
8 7 18
% 全部的和当然就可以用sum(sum(A))
>> sort(A)
% 同理,sort也是排序每一列的元素(从小到大)
ans =
0 0 3
1 2 6
7 5 9
>> sortrows(A)
% 默认按照第一列元素进行排序,然后把整行整行的元素重排
ans =
0 5 6
1 2 3
7 0 9
>> size(A)
% 表示3个行,3个列
ans =
3 3
>> length(A)
% 就只有一个长度的维度
ans =
3
>> find(A==5)
% 找出A中数值为5的位置在哪里。
ans =
5