输出函数(类比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