数学建模学习——Day02
一、Matlab基础知识入门
1.每行语句后面加上英文分号,表示不显示运行结果,分号也表示换行
2.多行注释:
选中要注释的语句,CTRL+R
3.取消注释:
选中要取消注释的语句,CTRL+T
4.clear:
清除工作区的所有变量
5.clc:
清除命令行窗口中的所有文本
6.clear;cls:
初始化,防止之前的结果对新脚本文件产生干扰
7.有用的函数:
1)disp函数:disp('要输出的内容')
a = [1,2,3] %行向量用逗号或空格隔开
a = [1 2 3] %行向量
a = [1;2;3] %分号表示列向量
disp(a) disp(a); %分号可加可不加
2)合并字符串1:strcat(str1,str2,...,strn)
例:strcat('a','b')
3)合并字符串2:[str1,str2,...,strn] 或 [str1 str2 ... strn]
例:['a','b'] ['a' 'b']
4)num2str:将数字转换为字符串
c = 10
num2str(c)
disp(['c=' num2str(c)])
disp(strcat('c=',num2str(c)))
5)input函数:输入
A = input('请输入A:'); %加分号不显示结果
B = input('请输入B:') %不加分号显示结果
6)sum函数:
1.若为向量,直接求和
E = [1,2,3]
sum(E)
E = [1;2;3]
sum(E)
2.若为矩阵,根据行和列的方向作区分
E = [1,2;3,4;5,6]
% a = sum(x) 按列求和,得到行向量
a = sum(E)
a = sum(E,1) % 维度dim=1表示按照列 dim=2表示按照行 默认dim=1
% a = sum(x,2) 按行求和,得到列向量
a = sum(E,2)
% a = sum(x(:)) 对整个矩阵求和
a = sum(sum(E))
a = sum(E(:))
8.matlab中如何提取矩阵中指定位置的元素
1)指定行和列的一个元素(输出一个值)
A = [...]
A(2,1)
A(3,2)
2)取指定某一行的全部元素(输出行向量)
A(2,:) % : 表示取所有元素
A(5,:)
3)取指定某一列的全部元素(输出列向量)
A(:,2) % : 表示取所有元素
A(:,5)
4)取指定的某些行的元素(输出矩阵)
A([2,5],:) % 只取第二行和第五行(2行)
A(2:5,:) % 取第二行到第五行(4行)
A(2:2:5,:) % 取第二行和第四行(从2开始,每次递增2个单位,到5结束)
1:3:10:1 4 7 10
1:3:9:1 4 7
10:-1:1:10 9 8 7 6 5 4 3 2 1
A(2:end,:) % 取第二行到最后一行
A(2:end-1,:) % 取第二行到倒数第二行
5)取全部元素(按列拼接,最终输出一个列向量)
A(:)
9.size函数:求矩阵的行数和列数
A = [1,2,3;4,5,6]
B = [1,2,3,4,5,6]
size(A)
size(B)
% size(A)函数是用来求矩阵A的大小的,它返回一个行向量,第一个元素是矩阵的行数,第二个元素是矩阵的列数
[r,c] = size(A)
% 将矩阵A的行数返回到第一个变量r,将矩阵的列数返回到第二个变量c
r = size(A,1) %返回行数
r = size(A,2) %返回列数
10.repmat函数:复制
%B = repmat(A,m,n) 将矩阵A复制m * n块,即把A作为B的元素,B由m * n个A平铺而成
A = [1,2,3;4,5,6]
B = repmat(A,2,1)
B = repmat(A,3,2)
11.matlab中矩阵的运算
1)* 和 /:乘法和除法(A/B=A*inv(B))
inv(B) % B的逆
2)两个形状相同的矩阵对应元素之间的乘除法需要用“.*”和“./”
3)每个元素同时和常数相乘或相除操作都可以使用“.*”和“./”
4)每个元素同时乘方时只能用“.^”
12.matlab中求特征值和特征向量
1)E = eig(A)
求矩阵A的全部特征值,构成向量E
2)[V,D] = eig(A)
求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量(V的每一列都是D中与之相同列的特征值的特征向量)
13.find函数的基本用法
1)向量
ind=find(X) % 返回向量或矩阵中不为0的位置索引
ind=find(X,2) % 返回前2个不为0的位置索引
2)矩阵
ind=find(X) % 把矩阵一列一列排列,然后返回列向量中不为0的位置索引,这是因为matlab在存储矩阵中,是一列一列存储的
3)[r,c] = find(X) % 返回行列的信息,r为行,c为列
[r,c] = find(X,1) % 返回第一个非0元素的位置索引
14.矩阵与常数的判断大小运算
>大于;<小于;==等于
X = [1 -3 0;0 0 8;4 0 6]
X > 0
X == 4
返回逻辑数组(0和1)
15.判断语句
if所在行不需要冒号,语句的最后以end结尾,中间的语句缩进。
16.循环语句
for 1:10 % 相当于1:1:10,循环10次
for 1:2:10 % 相当于1:2:10,循环5次(1,3,5,7,9)
17.求均值函数:
mean()
18.求绝对值函数:
abs()