▲MATLAB中所有数据都是按照数组的方式进行存储和运算,数组和数组运算始终是MATLAB中的核心内容,使用数组和数组运算可以使 计算 机程序简单、易读,使程序命令更接近于教科书上的数学公式,而且还可以提高程序的向量化程度,提高计算效率,节省计算机开销。本章主要介绍数组及数组运算、多项式表示及运算和MATLAB中的关系及逻辑运算。
data1=[pi;log(5);7+6;2^3]; data2=[pi log(5) 7+6 2^3]; data3=2:2:10; data4=2:10; data5=linspace(2,10,5); data6=logspace(1,5,10);
▲上面的例子基本演示了在MATLAB中创建一维数组的方法,主要有以下几种。
:data1和data2的创建方法就是直接 输入法 ;
:data3和data4就是步长生成法,其通用方法是a:inc:b。其中a是数组的第一个元素;inc是创建数组之间的间隔,也就是步长,inc可以省略,默认数值为1;b是数组中的最后一个元素。
:data5就是,x=linspace(a,b,n),a和b分别是数组的第一个和最后一个元素;n是采样点数。
:data6就是,x=logspace(a,b,n),在设定“总个数n”的条件下,经过“常用对数”采样生成一维行数组。
▲在步长生成法中,步长参数inc的数值可以是正数,也可以是负数,当inc是正数的时候,必须满足a<b;当inc是负数的时候,必须满足a>b。
▲二维数组也成为矩阵,有如下6种创建方法:
:将数据括在[ ] 中,同一行的元素用空格或逗号隔开,每一行可以用【Enter】键或分号隔开。
A=[ 1 2 3 4 5 6 1 2 6 ]
:生成单位矩阵。
eye(n):生成 n x n 阶的单位E;
eye(m,n):生成 m x n 的矩阵E,对角线元素为1,其他元素为0;
eye( size (A)):生成一个矩阵与A大小相同的单位矩阵。
:生成全1的矩阵。
ones(n):生成 n x n 全1矩阵;
ones(m,n):生成 m x n 的全1矩阵;
ones(size(A)):生成一个矩阵与A大小相同的全1矩阵;
ones(m,n,p,…):生成 m x n x p x …的全1的多维矩阵。
:生成全0矩阵。
zeros(n):生成 n x n 全0矩阵;
zeros(m,n):生成 m x n 的全0矩阵;
zeros(size(A)):生成一个矩阵与A大小相同的全0矩阵;
zeros(m,n,p,…):生成 m x n x p x …的全0的多维矩阵。
:生成[0,1]之间均匀分布的随机函数。
Y=rand:生成一个随机数;
Y=rand(n):生成 n x n 的随机矩阵;
Y=rand(m,n):生成 m x n 的随机矩阵;
Y=rand(size(A)):生成一个矩阵与A大小相同的随机矩阵;
Y=rand(m,n,p,…):生成 m x n x p x …的随机数多维矩阵。
:函数randn用来生成服从正态分布的随机函数。
Y=randn:生成一个服从标准正态分布的随机数;
Y=randn(n):生成 n x n 的服从标准正态分布的随机矩阵;
Y=randn(m,n):生成 m x n 的服从标准正态分布的随机矩阵;
Y=randn(size(A)):生成一个矩阵与A大小相同的服从标准正态分布的随机矩阵;
Y=randn(m,n,p,…):生成 m x n x p x …的服从标准正态分布的随机数多维数组。
▲在MATLAB中,习惯将二维数组的第一维称为“行”,第二维称为“列”,而对于第三位数组,其第三维则习惯性称为“页”。在MATLAB中,将三维或者三维以上的数组统称为高维数组。
1. 使用下标引用的方法创建三维数组。
A(2,2,2)=1; for i=1:2 for j=1:2 for k=1:2 A(i,j,k)=i+j+k; end end end
▲创建新的高维数组。
B(3,4,:)=2:5;
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删