A.创建一维数组
行向量
1.使用方括号
2.使用冒号(步长精确)
x=第一个元素:步长:最大元素不能超过的数
步长可正可负,负时,第一个元素必须大于最大元素不能超过的数
步长为1时可以简写
3.函数linspace(个数精确)
4.函数logspace
5.
x=randi([1 10],5,3);%生成随机整数矩阵,大小为5X3,范围在1-10中
列向量
1.使用方括号,但是要用;分割
x=[1;2;3]
2.使用冒号
x=(1,3)'
'代表矩阵的转置
数组变量
a=[0 1+6] % 有运算符 b=[a 6 7] % 数组内有其他变量,嵌套,维数一致就可以
B.创建二维数组
1.方括号
a2=[1 2 3;4 5 6;7 8 9]
行与行分号隔开,列与列空格或者逗号隔开
a=[1 2 3]; b=[2 3 4]; c1=[a;b] c2=[a b]
2.函数方法
ones() 全1矩阵 ones(2)2X2矩阵 ;ones(3,4)3X4矩阵
zeros() 全0矩阵 同上
reshape
a=-4:4 b=reshape(a,3,3)
排列顺序,从上到下按列排列,先拍第一列,再排第二列,。。。
要求数组的元素总数不变
C.数组的寻访
1.一维数组
2.二维数组
冒号代表所有的行,
【2 3】代表第2列和第三列
合起来就是第二列第三列所有的行
a_2()
a_2=[1 1 1 7;10 1 1 30] a_2(:,end) %倒数第一列 a_2(:,end-1) %倒数第二咧 a_2(:,end:-1:3) %倒数第一列到正数第三列 a_2(end,:) %最后一行 a_2(end,[2:4]) %最后一行的第二列到第四列 a_2([4 6])=6:7 % 竖着数第四个数和第六个数 a_2(end,[2:end-1]) %最后一行的第二列到倒数第三列
D.算数运算
1.除
左除AB A的逆矩阵XB
右除A/B AXB的逆矩阵
t=[0:199]./100 %采样时间点 t=0:0.01:2 x=sin(2*pi*t)+sin(4*pi*t) %生成信号 plot(t,x)
练习
m(t)=cos(2pi fm t) s(t)=(A+m(t))cos(2pi fc t) fm=1 fc=10 A=2 Ts=0.001,时间是0到5s,画出s(t)的图像
fm=1; fc=10; A=2; t=0:0.001:5 %t=[0:4999]./1000 mt=cos(2*pi*fm*t) st=(A+mt).*cos(2*pi*fc*t) plot(t,st)
E.关系运算
1、当两个标量进行比较时,直接比较两数大小。若关系成立, 结果为1,否则为0。
2、当两个维数相等的矩阵进行比较时,其相应位置的元素按 标量关系进行比较,并给出结果,形成一个维数与原来相同 的0、1矩阵。
3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行比较,结果形成一个与矩阵维数相等的0、1矩阵。
一些函数:
(1)fix(x):截尾取整
fix([3.4,-3.4])
ans=
3,-3
(2) floor( x):不超过x的最大整数
>> floor([3.4 , -3.4])
ans =
3 -4
(3)ceil(x) : 大于x 的最小整数。如:
>> ceil([3.4 , -3.4])
ans =
4 -3
(4)round(x):四舍五入取整。如:
>> round([3.4 , 3.6 , -3.4 , -3.6])
ans =
3 4 -3 -4
(5)mod()取模,,,rem()取余
rem(a,b)与mod(a,b)
当a和b的正负号一样的时候,两个函数结果是相同的。
当a和吧异号是,rem的符号结果与a相同,mod与b相同
rem采用fix函数 朝0方向取整
mod采用floor函数 朝负无穷方向取整
公式是:值 = 被除数 - (商 * 除数),(商通过floor或fix函数得到)
练习:
建立5阶方阵A,判断其元素能否被3整除。
A = [24, 35, 13, 22, 63;23, 39, 47, 80, 80;... 90, 41, 80, 29, 10;45, 57, 85, 62, 21; 37, 19, 31, 88, 76]
A = [24, 35, 13, 22, 63;23, 39, 47, 80, 80; 90, 41, 80, 29, 10;45, 57, 85, 62, 21; 37, 19, 31, 88, 76] p=rem(A,3)==0
F.逻辑运算
1、在逻辑运算中,确认非零元素为真(1),零元素为假(0)。
2、当两个维数相等的矩阵进行比较时,其相应位置的元素按 标量关系进行比较,并给出结果,形成一个维数与原来相同 的0、1矩阵;
3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行 比较,结果形成一个与矩阵维数相等的0、1矩阵;
4、算术运算优先级最高,逻辑运算优先级最低。
练习:
1.
x=0:pi/100:3*pi; y=sin(x) y1=(y>=0).*y plot(x,y1)
2.去顶
x=0:pi/100:3*pi; y=sin(x) y1=((y<=0.8)&(y>=0)).*y %消顶,但是大于0.8的地方是0 y2=(y>0.8)*0.8 %大于0.8的部分逻辑运算后是1,再乘0.8 最后结果就是0.8 y3=y1+y2 %两个加起来,因为在横坐标上不重叠 plot(x,y3) axis([0 10 0 1]) %横坐标显示0到10,纵坐标显示0到1
3.find函数
https://www.cnblogs.com/anzhiwu815/p/5907033.html
A=[4,15,-45,10,6;56,0,17,-45,0] find(A>=10&A<=20) A(ans)
4.
A = zeros(2,5); %这一句定义A是一个2*5的零矩阵 A(:) = -4:5%A的元素从-4到5共10个元素按照由上到下从左到右排列过去 L=abs(A)>3%标记矩阵A中元素的绝对值大于3的元素,其中大于是1 X = A(L)%取出A中绝对值大于3的元素组成一个新的矩阵
G.最大值和最小值
1.求向量的最大值和最小值
2、求矩阵的最大值和最小值
用两次max求矩阵最大值
用两次sum求矩阵和
练习
随机生成一百个1-10的整数,找到大于五的元素,并求和
r=randi(10,100,1) w=find(r>5) a=r(w) r=randi([-5,4],1,10) mean(r)