慕课matlab学习
第一章-04 -05
% matlab 基本运算
% 运算类型
% 1、算术运算
% 2、关系运算
% 3、逻辑运算
% 基本算术运算
% 加 减 乘 除(除法分为右除【/】和左除法【\】) 乘方【~】
% 注: matlab的算术运算是在矩阵意义下进行的
% 单个数据的算术运算只是矩阵运算的一种特例
% 加减运算
% 基本运算前提 : 两个矩阵同形,运算时两个矩阵对应的元素相加减
% 一个标量也可以进行加减运算,则此时把标量和矩阵的每一个元素进行加减运算
%乘法运算
%基本条件 A(m*n) * B(n*s) =C(m*s)即 A矩阵的列数和B矩阵的行数要相等才可运算
%除法运算
%矩阵除法运算分为两种 左除{\} 和右除{/}
%矩阵除法比较特殊,前提条件比较多
% 如果A矩阵时非奇异方阵 即 |A|!=0 ,也就是A矩阵可逆
% 则 B/A==B* inv(A) 解释: B矩阵右除A矩阵等价于 B矩阵右乘以 A的逆矩阵
% 则 B\A==inv(A)*B 解释: B矩阵左除A矩阵等价于 B矩阵左乘以 A的逆矩阵
% 左除和右除 分别表示是在 矩阵B上进行一个左乘或者右成一个逆矩阵,这个比较容易混淆
% eg 右除运算
A=[1,2,3;4,2,6;7,4,9]
B=[4,3,2;7,5,1;12,7,92]
C=B/A %表示的是 B右除以A 等价于 B*inv(A)
inv(A)
D=B*inv(A) %由运算结果可以得到 C==D 两矩阵运算得到的结果是相等的
% eg 左除运算
A % 打印矩阵A的值
B % 打印矩阵B的值
E=A\B %表示的是B左除以A 等价于 inv(A)*B 即 A的逆矩阵*B矩阵
F=inv(A)*B %可以看到, E==F ,运算后两个矩阵是相等的
% 注:此时 A作为被除数,但是放置在左边,这个需要看一下
% 乘方运算
A=[1,2,3;4,5,6;7,8,0]
G=A^2
H=A*A % 乘法运算和我们普通的乘方运算时一致的
% 2、 点运算
% 点运算符号 【.*】【./】 【.\】 和【.^】共四种点运算符
% 特点:点运算的两个矩阵必须时同行矩阵 ,且是【点对点】进行运算
% eg: 区分点乘 和乘法运算的区别
A=[1,2,3;4,5,6;7,8,9]
B=[-1,0,1;1,-1,0;0,1,1]
C=A.*B %这个是点乘运算
D=A*B %这个是矩阵的乘法运算
%点运算的应用
%当 x=0.1 0.4 0.7 1 时, 求 y=sinx cosx 的值
x=0.1:0.3:1 % 起始端 0.1 终止端 1 每次步长 0.3 ,这样生成的是一个一维向量
y=sin(x).*cos(x) % 要用点乘运算才可以进行运算,不然直接用乘法会报错,因为X是一个向量
%y=sin(x)*cos(x) % 会报错, sin(x)是一个 1*4 的矩阵 cos(x)也是 1*4的矩阵,两个这样的矩阵是无法进行矩阵乘法运算的
%关系运算
%关系运算符 :【<】 【<=】 【>】 【>=】 【==】 【~=】 注:【~=】是不等于的意思,其余和C语言是一致的
%关系运算比较
% 两种 : 矩阵关系运算比较 和 标量比较
% 矩阵关系比较 逐一比较,放回的是一个与原矩阵同型的矩阵 ,里面由 0 和1两个元素组成
% eg
A=[1,2,3;4,5,6;7,8,9]
B=[-1,0,7;1,-1,0;88,12,1]
C=A>B %返回的是A和B比较后的 由0 和1 组成矩阵
% 标量关系比较,此时比较后得到的是 0 和1的元素
% eg
a=3
b=5
c=a<b %返回的是一个 0或者1的标量
%eg 建立3阶方阵A,判断A的元素是否为偶数
A=[24,35,13;22,63,23;39,47,80]
P=rem(A,2)==0 % A矩阵取余2以后,判断矩阵里面的值是否为偶数
% 逻辑运算 【&】 【|】 【~】 与 或 非
% 分为 标量逻辑运算 和矩阵逻辑运算
% 1、标量的逻辑运算
flaf=0&4
% 2、矩阵逻辑运算 找水仙花数
m=100:1:999;
m1=rem(m,10);%个位
m2=rem(fix(m/10),10);%十位
m3=fix(m/100);%百位
%由上可知 m1 m2 m3 和 m 都是同长度的向量
k=find(m==m1.*m1.*m1+m2.*m2.*m2+m3.*m3.*m3) %这里输出的是向量的序号,类似于C语言一维数组的地址
s=m(k) %打印以为向量的地址