matlab矩阵数组零基础入门

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 matlab矩阵数组零基础入门,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

数组的创建

A=[1 2 3 4 5 ];%行向量
B=[1;2;3;4;5];%列向量
C=1:2:100; %利用冒号创建一维数组
D=logspace(2,7);%创建行向量,10的2次方到10的7次方,共50个数
F=logspace(2,7,7);%指定生成7个数
E=linspace(2,200,5);%创建行向量,2为起始,200为终止,共5个数

数组的加减乘除

A=rand(1,5);
B=rand(1,5);
C=A+B; %每一个数相加减
%D=AB; % 出错,行向量乘列向量才行(或者写成D=A/B)
E=rand(5,1);
D=A
E; %对应元素相乘再相加,结果是一个数
sameD=dot(A,E);%称之为点积

点乘、点除

A=rand(1,5);
B=rand(1,5);
C=A.*B; %一点一点乘,对应元素相乘,结果是一个数组
D=A./B; %一点一点除,B是除数,对应元素相乘,结果是一个数组
E=A.\B; %A是除数

常见矩阵

H=hilb(4);
T=toeplitz(1:4,1:5);
R=rand(3,9);
RN=randn(2,5);
M=magic(3);

矩阵的合并

A=rand(2,3);
B=rand(3,3);
C=rand(2,4);
D=[ A ;B]; % 纵向合并
E=[ A C ];

行列的删除与转置

A=magic(4);
B=zeros(5);
A(2,:)=[];
B(3,:)=[]; %空赋值只能有一个非冒号索引,B(3,3:5)会报错
C=A’;

矩阵的加减

A=magic(4);
B=randn(4);
C=A+B;
D=A+3;

例题 当x=0.1,0.4,0.7,1时,分别求y=sinxcosx的值
x=0.1:0.3:1;
y=sin(x).*cos(x); %注意用点乘,元素一一对应进行运算
disp(y);

矩阵元素的查找

A=magic(4);
disp(A);
[B,C]=find(A>2); %分别返回行向量和列向量
A(find(A<5))=5; %find函数返回的是一个数组
disp(A);

稀疏矩阵

A=rand(5)>0.5;% 关系运算
disp(A);
A=sparse(A);
disp(A);
spy(A);% 对非零元素进行图像显示

数组运算

数与数组加减:k+/-A %k加或减A的每个元素
数组乘数组: A.*B %对应元素相乘
数组乘方:  A.^k %A的每个元素k次方;k.^A,分别以k为底A的各元素为指数求幂值
数除以数组: k./A和A./k %k分别被A的元素除
数组除法: 左除A.\B,右除B./A %对应元素相除

矩阵运算

数与矩阵加减:k+/-A %等价于kones(size(A))+/-A
矩阵乘法: A
B %按数学定义的矩阵乘法规则
矩阵乘方:  A^k %k个矩阵A相乘
矩阵除法: 左除A\B右除B/A %分别为AX=B和XA=B的解
可见,数组的运算很简单。若不考虑数学意义时,矩阵是数组的二维版本。

构造数组

1、直接构造:用空格或逗号间隔数组元素
x=[1,2,3,4,5,6]
2、增量法构造:使用冒号操作符创建数组
a=first:end %递增,且步长为1的数组
a=first:step:end %指定增量步长值创建任何等差序列
3、用linspace函数构造
x=linspace(first,last,num) %需要指定首尾值和元素总个数,步长根据num平均分配

构造矩阵

1、简单创建方法
用[ ],逗号或空格格开各元素,分号隔开各行,注意各行具有相同的元素个数。
2、构造特殊矩阵
ones,zeros,eye,diag,magic,rand,randn,randpem


数组运算

转置 A.’ %非共轭转置,相当于(conj(A’))
数组加与减 A+B与A-B %对应元素之间加减
数乘数组 k.*A或A.*k % k乘A的每个元素
数与数组加减 k+A与k-A %k加(减)A的每个元素
数组乘数组 A.*B
数组乘方 A.^k %A的每个元素进行k次方运算
k.^A %以k底的,分别以A的元素为指数求幂值
数除以数组 k./A和A.\k % k分别被B的元素除
数组除法 左除A.\B,右除B./A

矩阵运算

矩阵转置 A’ %共轭转置
加减 A+B A-B
数乘矩阵 kA或Ak %上三项同数组运算
矩阵乘法 AB %按数学定义的矩阵乘法规则
矩阵乘方 A^k %k个矩阵A相乘
数与矩阵加减 k+A与k-A %等价于k
ones(size(A))±A
矩阵除法 左除A\B,右除B/A %分别为AX=B和XA=B的解


例:
A=[1 2;3 4];B=[4 3;2 1];
r1=100+A
r1 =
101 102
103 104

r2_1=A*B,r2_2=A.*B
r2_1 =
8 5
20 13
r2_2 =
4 6
6 4

r3_1=A\B,r3_2=A.\B
r3_1 =
-6.0000 -5.0000
5.0000 4.0000
r3_2 =
4.0000 1.5000
0.6667 0.2500

r4_1=B/A,r4_2=B./A
r4_1 =
-3.5000 2.5000
-2.5000 1.5000
r4_2 =
4.0000 1.5000
0.6667 0.2500

r5_1=A.2,r5_2=A2
r5_1 =
1 4
9 16
r5_2 =
7 10
15 22
r6_1=2.^A
r6_1 =
2 4
8 16


size(a)表示矩阵每个维度的长度
比如size([1 2 3;4 5 6])
等于[2 3]
表示他有2行3列
size([1 2 3])
等于[1 3]
表示他有1行3列
另外size(a,n)表示矩阵a在第n个维度下的长度。
比如size([1 2 3;4 5 6],1)
等于2,表示有2行
size([1 2 3;4 5 6],2)
等于3,表示有3列
length(a)表示矩阵a的最大的长度,即max(size(a))
比如length([1 2 3;4 5 6])
等于3,因为2和3中最大是3
当a是向量时,即表示向量的元素个数,因为向量总是1×n或n×1的,而n一定大于或等于1.所以得到的结果一定是n
ndims(a)表示矩阵a的维数,即length(size(a))
比如ndims([1 2 3;4 5 6])
等于2,因为他是二维矩阵
matlab认为向量也是二维矩阵,只不过其中一个维度的长为1.
因此ndims([1 2 3])也等于2
我们可以构造一个三维甚至更高维度的矩阵,
比如a=cat(3,[1 2 3 4;5 6 7 8],[9 8 7 6;5 4 3 2])
他除了行和列以外还有一个维度,我们暂且把它叫做高度。
也就是说a有两层,第一层是[1 2 3 4;5 6 7 8],第二层是[9 8 7 6;5 4 3 2]
此时有size(a)=[2 4 2]
即2行4列2层
length(a)=4
([2 4 2]中最大为4)
ndims(a)=3
(因为他有3个维度)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/143883.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!