1.清除操作
clear; 清除工作区所有文件
clc; 清除命令行内所有显示的文字
2.一些快捷键
ctrl + R 注释
ctrl + T 取消注释
ctrl + C 中断 命令行调试
在命令行按上键可以调出历史命令
3.一些关于matlab的常识
在每句的末尾加上分号是不显示这句话的结果
matlib是区分大小写的
Inf表示无穷
4.输入输出
input输入,disp输出
a = input('请输入一个数字:');
disp(a)
5.字符串操作在matlab字符串都是用单引号包起来的。
字符串的 合并 :
第一种方法:
a = strcat('请输入','一个数字')
输出:
a =
请输入一个数字
第二种方法:
a = ['请输入','一个数字']
输出:
a =
请输入一个数字
将数值转化为字符串的形式,然后就可以和其他的字符串去拼接:
a = 2;
a = num2str(a); %转化为字符串的形式
disp(strcat('数字是',a))
输出:
数字是2
6.向量的表示
行向量:
a = [1 2 3]
a = [1,2,3]
输出:
a =
1 2 3
列向量:
a = [1;2;3]
输出:
a =
1
2
3
矩阵:
a = [1 2 3;4 5 6;7 8 9]
输出:
a =
1 2 3
4 5 6
7 8 9
7.向量的求和sum函数和求积的prod函数a = [1 2 3;4 5 6;7 8 9]
sum(a)
输出:
ans =
12 15 18
可见sum函数默认是按列求和的,把每列的元素求和,生成一个行向量。
这是因为默认的维度dim = 1,若是设置dim = 2 则是按行求和,生成一个列向量。
a = [1 2 3;4 5 6;7 8 9]
sum(a,2)
输出:
ans =
6
15
24
那怎么将矩阵内所有元素相加呢
a = [1 2 3;4 5 6;7 8 9]
sum(sum(a,2)) %第一种方法
sum(a(:)) %第二种方法
输出:
ans =
45
类比于sum函数,求乘积的prod函数,直接使用是每一列求乘积。
a = [1 2 3;4 5 6;7 8 9]
prod(a)
输出:
ans =
28 80 162
维度为2时是每一行求乘积:
a = [1 2 3;4 5 6;7 8 9]
prod(a,2)
输出:
ans =
6
120
504
8.向量的求最大值函数max和求最小值函数min直接使用的话输出每一列的最大值或这最小值
a = [1 2 3;4 5 6;7 8 9]
max(a)
min(a)
输出:
ans =
7 8 9
ans =
1 2 3
可以指定维度,但是和sum函数略有不同
a = [1 2 3;4 5 6;7 8 9]
max(a,[],2)
min(a,[],2)
输出:
ans =
3
6
9
ans =
1
4
7
甚至可以直接找到每一行的最大最小值的位置
a = [1 2 3;4 5 6;7 8 9]
[max_number,max_point] = max(a,[],2)
[min_number,min_point] = min(a,[],2)
输出:
max_number =
3
6
9
max_point =
3
3
3
min_number =
1
4
7
min_point =
1
1
1
9.取矩阵的元素取矩阵的某一元素,例如第二行第三列的元素
a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(2,1)
输出:
ans =
6
取矩阵的某一行
a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(2,:)
输出:
ans =
6 7 8 9 10
取矩阵的某两行
a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a([1,2],:)
输出:
ans =
1 2 3 4 5
6 7 8 9 10
取矩阵的二到四行
a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(2:4,:)
ans =
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
取矩阵的第二行到最后一行
a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(2:end,:)
输出:
ans =
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
从第一行开始每隔一行取一行
a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
a(1:2:end,:)
输出:
ans =
1 2 3 4 5
11 12 13 14 15
21 22 23 24 25
对于列来说的话也是一样,就不再赘述
9.描述矩阵大小的size函数
size函数返回两个值,一个是矩阵的行数(r),一个是列数(c)
a = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]
[r,c] = size(a)
输出:
r =
5
c =
5
% r = size(a,1)
% c = size(a,2)
10.重复矩阵的repmat函数repmat(A,m,n)函数可以将函数按照块来复制,复制成m*n块
a = [1 2 3;4 5 6;7 8 9]
b = repmat(a,2,1)
b = repmat(a,3,2)
输出:
b =
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
b =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
11.求逆函数inv没什么可讲的,直接求逆运算
a = [1 2 3;4 5 6;7 8 9]
inv(a)
输出:
ans =
1.0e+16 *
0.3153 -0.6305 0.3153
-0.6305 1.2610 -0.6305
0.3153 -0.6305 0.3153
12.乘除乘方运算,和点乘点除点乘方运算除法就相当于乘以另一个矩阵的逆
点乘和点除或者点乘方相当于是两个矩阵的对应元素做乘除法
a = [1 2 3;4 5 6;7 8 9]
13.求特征值和特征向量eig函数直接输出特征值:
a = [1 2 3;4 5 6;7 8 9]
eig(a)
输出:
ans =
16.1168
-1.1168
-0.0000
输出特征向量和特征值(V特征向量,D特征值):
a = [1 2 3;4 5 6;7 8 9]
[V,D] = eig(a)
输出:
V =
-0.2320 -0.7858 0.4082
-0.5253 -0.0868 -0.8165
-0.8187 0.6123 0.4082
D =
16.1168 0 0
0 -1.1168 0
0 0 -0.0000
14.查找find函数直接使用是不为0的元素的索引
a = [1 2 3;4 5 6;7 8 9]
find(a)
输出:
ans =
1
2
3
4
5
6
7
8
9
找出前三个不为0的数的索引
a = [1 2 3;4 5 6;7 8 9]
find(a,3)
输出:
ans =
1
2
3
返回后三个呢
a = [1 2 3;4 5 6;7 8 9]
find(a,3,'last')
输出:
ans =
7
8
9
输出行列 信息 ,甚至对应元素的值
a = [1 -3 0;0 0 8;4 0 6]
[r,c,v] = find(a)
输出:
r =
1
3
1
2
3
c =
1
1
2
3
3
v =
1
4
-3
8
6
找到是否含有元素为10
a = [1 -3 0;0 0 8;4 0 6]
find(a == 10)
输出:
ans =
空的 0×1 double 列矢量
15.条件判断if-else语句话不多说,直接上语法
a = input('please input a number: ')
if a >= 80
disp('优秀')
elseif a >= 60
disp('良好')
else
disp('退学吧')
end
16.循环语句1到5循环
for i = 1:5
disp(i)
end
输出:
1
2
3
4
5
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删