matlab 建立矩阵的函数,[转载]matlab 生成矩阵

查看原文:http://houyewei.com/archives/493

2.2.1++矩阵的建立

1.直接输入法

++++最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

+

2.利用M文件建立矩阵

++++对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例子来说明如何利用M文件创建矩阵。

+

++++例2-2++利用M文件建立MYMAT矩阵。

(1)+启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵:

(2)+把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。

(3)+在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。

+

3.利用冒号表达式建立一个向量

++++冒号表达式可以产生一个行向量,一般格式是:

++++e1:e2:e3

其中e1为初始值,e2为步长,e3为终止值。

在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:

linspace(a,b,n)

其中a和b是生成向量的第一个和最后一个元素,n是元素总数。

显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。

4.建立大矩阵

大矩阵可由方括号中的小矩阵或向量建立起来。

+

2.2.2++矩阵的拆分

1.矩阵元素

++++通过下标引用矩阵的元素,例如

A(3,2)=200

采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如

A=[1,2,3;4,5,6];

A(3)

ans+=

+++++2

显然,序号(Index)与下标(Subscript+)是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。

+

2.矩阵拆分

++++(1)+利用冒号表达式获得子矩阵

++++++++①+A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。

++++++++②+A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。

此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。

+

++++(2)+利用空矩阵删除矩阵的元素

++++在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。注意,X=[]与clear+X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。

+

2.2.3++特殊矩阵

1.通用的特殊矩阵

常用的产生通用特殊矩阵的函数有:

zeros:产生全0矩阵(零矩阵)。

ones:产生全1矩阵(幺矩阵)。

eye:产生单位矩阵。

rand:产生0~1间均匀分布的随机矩阵。

randn:产生均值为0,方差为1的标准正态分布随机矩阵。

+

例2-3++分别建立3×3、3×2和与矩阵A同样大小的零矩阵。

(1)+建立一个3×3零矩阵。

zeros(3)

(2)+建立一个3×2零矩阵。

zeros(3,2)

(3)+设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵A同样大小零矩阵。

A=[1+2+3;4+5+6];++++%产生一个2×3阶矩阵A

zeros(size(A))++++++%产生一个与矩阵A同样大小的零矩阵

+

例2-4+建立随机矩阵:

(1)+在区间[20,50]内均匀分布的5阶随机矩阵。

(2)+均值为0.6、方差为0.1的5阶正态分布随机矩阵。

命令如下:

x=20+(50-20)*rand(5)

y=0.6+sqrt(0.1)*randn(5)

此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。

+

2.用于专门学科的特殊矩阵

(1)+魔方矩阵

魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n)ÿ

你可能感兴趣的:(matlab,建立矩阵的函数)