🌈个人主页:羽晨同学
💫个人格言:“成为自己未来的主人~”
%% Matlab基本的小常识
% (1)在每一行的语句后面加上分号(一定要是英文的)
a=3;
a=5;
% (2)多行注释:选中要注释的若干语句,快捷键Ctrl+R
% a=3;
% a=5
% (3)取消注释:选中要取消注释的语句,快捷键Ctrl+T
% clear可以清楚工作区的所有变量
clear
% clc 可以清除命令行窗口中的所有文本,让屏幕变得干净
clc
% 所以大家在很多代码的开头,都会见到:
clear;clc % 分号也用于区分行
% 这两条一起使用,起到"初始化"的作用,防止之前的结果对新结果的影响
%%输出和输入函数(disp和input)
%disp函数
disp('大家好,这里是Matlab基础讲解');
a=[1,2,3]
a=[1 2 3]
disp(a)
% 注意 disp这里是一定需要分号的
disp(a);
clear;clc
% matlab中两个字符串的合并有两种方法
% (1) strcat(str1,str2....,strn)
strcat('字符串1','字符串2')
% (2) [str1,str2,.....,str n]
['字符串' '字符串2']
['字符串1','字符串2']
% 一个有用的字符串函数:num2str 将数字转换为字符串
c=100;
num2str(c);
disp(['c的取值为' num2str(2)]);
disp(strcat('c的取值为',num2str(2)));
% input函数
% 一般我们会将输入的数、向量、矩阵、字符串等赋给一个变量
A=input('请输入A: ');
B=input('请输入B: ')
% 注意观察工作区,并体会input后面加分号和不加分号的区别
% 不加分号的自动输出了结果
%% sum函数
% (1)如果是向量(无论是行向量还是列向量),都是直接求和
E=[1,2,3];
sum(E)
E=[1;2;3]
sum(E)
% (2)如果是矩阵,则需要根据行和列的方向作区分
clc
E=[1,2;3,4;5,6]
% a=sum(x);%按列求和(得到一个行向量)
a=sum(E)
a=sum(E,1)
% a=sum(x,2);% 按行求和(得到一个列向量)
a=sum(E,2)
% a=sum(x(:)); % 整个矩阵求和
a=sum(sum(E))
a=sum(E(:))
clc
%% 基础: Matlab中如何提取矩阵中指定位置的元素
% (1)取指定行和列的一个元素(输出的一个值)
clc;A=[1 1 4 1/3 3;1 1 4 1/3 3;1/4 1/4 1/3 1/2 2; 3 3 3 1 3;1/3 1/3 2 1/3 1];
A
A(2,1)
A(3,2)
% (2)取指定的某一行的全部元素(输出的是一个行向量)
clc;A
A(2,:)
A(5,:)
% (3)取指定的某一列的全部元素(输出的是一个列向量)
clc;A
A(:,1)
A(:,3)
% (4)取指定的某些行的全部元素(输出的是一个矩阵)
clc;A
A([2,5],:)
A(2:5,:)
A(2:2:5,:)
1:3:10
10:-1:1
A(2:end,:)
A(2:end-1,:)
% (5) 取全部元素(按列拼接的,最终输出的是一个列向量)
clc;A
A(:)
%% size函数
clc;
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,将矩阵的列数返回到第二个变量
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,2,1)
B=repmat(A,3,2)
%% Matlab中矩阵的运算
% MATLAB在矩阵的运算中,"*"号和"/"号代表矩阵之间的乘法与除法
A=[1,2;3,4]
B=[1,0;1,1]
A*B
inv(B) % 求B的逆矩阵
B*inv(B)
A*inv(B)
A/B
% 两个形状相同的矩阵对应元素之间的乘除法需要使用".*"和"./"
A=[1,2;3,4]
B=[1,0;1,1]
A.*B
A./B
% 每个元素同时和常数相乘或相除都可以使用
A=[1,2;3,4]
A*2
A.*2
A/2
A./2
% 每个元素同时乘法时只能用.^
A=[1,2;3,4]
A.^2
A^2
A*A
%% 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,diag]=eig(A)
%% find函数的基本用法
% find函数,它可以用来返回向量或者矩阵中不为0的元素位置索引
clc;X=[1 0 4 -3 0 0 0 8 6]
ind=find(X)
% 其有多种用法,比如返回前两个不为0的元素的位置
ind=find(X,2)
% 上面针对的是向量(一维),若X是一个矩阵(二维,有行和列),索引该如何返回
clc;X=[1 -3 0;0 0 8;4 0 6]
ind=find(X)
% 这是因为在Matlab在存储矩阵时,是一列一列存储的,我们可以验证一下
X(4)
% 假如你需要按照行列的信息输出该怎么办
[r,c]=find(X)
[r,c]=find(X,1)
%% 矩阵与常数的大小判断运算
% 共有三种运算符,大于>;小于<;等于==(一个等号表示赋值,两个等号表示相等)
X=[1 -3 0;0 0 8;4 0 6]
X>0
X==4
%% 判断语句
a=input('请输入考试成绩分数: ')
if a>=85
disp('成绩优秀')
elseif a>60
disp('成绩合格')
else
disp('成绩不合格')
end