您的当前位置:首页正文

【数学建模】—— MATLAB入门

2024-11-26 来源:个人技术集锦


小常识


输入和输出函数(disp 和 input)

输出函数(类比printf)

disp("xuan_che")
a = [1, 2, 3] a = [1 2 3] 行向量
a = [1; 2; 3] 列向量 ,分号可以用来分割行

matlab中两个字符串合并有两种方法

(1)strcat(str1,  str2, ..., strn)
	 strcat('字符串1', '字符串2', '字符串3')
(2)[str1, str2, ..., strn] 或 [str1 str2 ... strn]
	 ['字符串1','字符串2'..]
	 ['字符串1' '字符串2'..]

num2str → 将数字转换为字符串

c = 100
num2str(c)
disp(['c的取值为' num2str(c)])

input函数

一般我们会将输入的 数、向量、矩阵、字符串等赋给一个变量,这里我们赋值给A

A = input('请输入A:')
B = input('请输入B:')
% 注意观察工作区,并体会input后面加分号和不加分号的区别

sum函数

(1) 如果是向量(无论是行向量还是列向量),都是直接求和的

E = [1,2,3]
sum(E) % 6
E = [1;2;3]
sum(E) % 6

(2)如果是矩阵,则需要根据行和列的方向做区分

E = [1,2;
		 3,4;
		 5,6]
% 同行元素用逗号或者是空格隔开,不同行之间用分号隔开
1.a = sum(x)    % 按列求和得到一个行向量
	a = sum(E)
	a = sum(E,1)
2.a = sum(x,2)  % 按行求和得到一个列向量
	a = sum(E,2)
3.a = sum(x(:)) % 对整个矩阵求和
	a = sum(sum(E))
	a = sum(E(:))

基础: MATLAB中如何提取矩阵中指定位置的元素

(1) 取指定行和列的一个元素(输出的是一个值)

A(2,1) 第二行第一列
A(3,2) 第三行第二行

(2) 取指定的某一行的全部元素(输出的是一个行向量)

A(2,:)
B(4,:)

(3) 取指定的某一列的全部元素(输出的是一个列向量)

A(:,3)
B(:,2)

(4) 取指定的某些行的全部元素(输出的是一个矩阵)

A([2,5],:) % 取第二行和第五行(2行)
A([2:5],:) % 取第二行到第五行(3行)
A([2:2:5],:) % 取第二行和第四行(从2开始,每次递增2个单位,到5结束)
A(2:end,:) % 取第二行到最后一行
A(2:end-1,:) % 取第二行到倒数第二行
A(:) % 按列全部输出

size(A) 函数是用来求矩阵A的大小的,它返回一个行向量,第一个元素是矩阵的行数,第二个是矩阵的列数

[r,c] = size(A)
r = size(A,1) % 返回行数
c = size(A,2) % 返回列数

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,3,2)

Matlab中矩阵的运算

“*” 和 “/” 表示矩阵之间的乘法和除法(A/B = A * inv(B))

A = [1,2;3,4]
A * B

inv(B)求B的逆矩阵

每个元素同时乘方只能用 .^

A = [1,2;3,4]
A .^ 2
% A * A -> A ^ 2

Matlab中求特征值和特征向量

在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),其中最常用的两个用法是

A = [1,2,3;2,2,1;2,0,3]

% (1) E = eig(A) 求矩阵A的全部特征值,构造向量E
E = eig(A)
% (2) [V, D] = eig(A) 求矩阵A的全部特征值,构成对角D,并求A的特征向量构成V的列向量(V的每一列中都是D中与其相同列的的特征值的特征向量)
[V, D] = eig(A)

find函数,它可以用来返回向量或者是矩阵中不为0的元素的位置索引

X = [1 0 4 -1 0 0 0 8 6]
ind = find(X)
% 有多种用法,比如返回前2个不为0的元素的位置
ind = find(X, 2)
% 若X是一个矩阵(二维,有行有列)
X = [1 -3 0; 0 0 8; 4 0 6]
ind = find(X)
% 如果需要按照行列的信息输出
[r,c] = find(X)
[r,c] = find(X,1) % 只找第一个非0元素

矩阵与常数的大小判断运算

% 共有三种运算符:大于 >; 小于 <; 等于 == (一个等号表示赋值,两个等号表示判断)
X = [1 -3 0; 0 0 8; 4 0 6]
X > 0
X == 4

判断语句

MATLAB中的判断语句,if所在的行不需要冒号,语句的最后一定要以end结尾;中间的语句要注意缩进

a = input("请输入考试分数")
if a >= 85
	disp("优秀")
elseif a >= 60
	disp("合格")
else 
	disp("挂科")
end
显示全文