matlab矩阵的操作

来源:互联网 发布:木马编程进阶与实战 编辑:程序博客网 时间:2024/05/09 13:08


 

l          矩阵的输入

  

I.        直接输入创建矩阵

   输入方法是先键入左方括弧“[”,然后按行直接键入矩阵的所有元素,最后键入右方括弧“]”。注意:整个矩阵以“[”和“ ]”作为首尾,同行的元素用“,”或空格隔开,不同行的元素用“;”或按Enter键来分隔;矩阵的元素可以为数字也可以为表达式,如果进行的是数值计算,表达式中不可包含未知的变量。

例4:直接输入创建矩阵

解:Matlab命令为

A = [1,2,3; 4,15,60; 7,8,9] ↙

A =

     1     2     3

     4    15    60

     7     8     9  

C1=A(:,[1,3]),读取第一列和第三列数据

C2=A(:,2:3),读取第二列和第三列数据

或用Matlab命令

A=[1,2,3↙

    4,15,66↙

    7,8,9]  ↙

A =

     1     2     3

     4    15    60

     7     8     9  

II.  用矩阵函数来生成矩阵

MATLAB 提供了大量的函数来创建一些特殊的矩阵,表2.3给出MATLAB常用的矩阵函数。

表2.3 常用的矩阵函数

函数名称

函数功能

函数名称

函数功能

zero(m,n)

m行n列的零矩阵

eig(A)

求矩阵A的特征值

eye(n)

n阶方矩阵

poly(A)

求矩阵A的特征多项式

ones(m,n)

m行n列的元素为1的矩阵

trace(A)

求矩阵A的迹

rand(m,n)

m行n列的随机矩阵

cond(A)

求矩阵A的条件数

randn(m,n)

m行n列的正态随机矩阵

rref(A)

求矩阵A的行最简形

magic(n)

n阶魔方矩阵

inv(A)

求矩阵A的逆矩阵

hess(A)

hess 矩阵

det(A)

求矩阵A的行列式

sqrtm(A)

求矩阵A的平方根

expm(A)

求矩阵A的指数值

funm(A)

按矩阵计算的函数值

logm(A)

求矩阵A的对数值

rank(A)

求矩阵A的秩

morm(A,1)

求矩阵A的范数

 

例5:输入矩阵 。

解:Matlab命令为

ones(3) ↙           %生成元素都为1的3阶方阵

ans =

     1     1     1

     1     1     1

     1     1     1

 

例6:输入矩阵

解:Matlab命令为

zeros(2,5)  ↙        %生成元素都为0的2行5列零矩阵

ans =

     0     0     0     0     0

     0     0     0     0     0

 

例7:生成3阶魔方矩阵。

解:Matlab命令为

magic(3) ↙          

ans =

     8     1     6

     3     5     7

     4     9     2

 

l          操作符“:”的说明

j:k      表示步长为1的等差数列构成的数组:[j, j+1, j+2,…, k]

j:i:k     表示步长为i的等差数列构成的数组:[j,j+i,j+2*i,…, k]

A(i:j)    表示A(i),A(i+1),…,A(j)

 

例8:操作符冒号”:”的应用

解:Matlab命令为

1:5 ↙                  %步长为1的等差数列。

Ans =

     1     2     3     4     5

1:2:7  ↙               %步长为2的等差数列。

Ans =

     1     3     5     7

8:-2:0  ↙               %步长为-2的等差、递减数列。

Ans =

     8     6     4     2     0

 

l          对矩阵元素的操作

设A是一个矩阵,则在MATLAB中有如下符号表示它的元素:

A(i,j)     表示矩阵A的第i行第j列元素。

A(:,j)     表示矩阵A的第j列。

A(i,:)     表示矩阵A的第i行。

A(:,:)     表示A的所有元素构造2维矩阵

A(:)       表示以矩阵A的所有元素按列做成的一个列矩阵。

A(i)      表示矩阵A(:)的第i个元素。

[ ]        表示空矩阵

 

I.       元素的抽取与赋值

     

 例9:已知矩阵 ,抽取与修改矩阵A的一些元素.

解:Matlab命令为

A=[1 23 56;sin(3) 7 9;log(2) 6 1]  ↙           %输入矩阵A。

A =

    1.0000   23.0000   56.0000

    0.1411    7.0000    9.0000

    0.6931    6.0000    1.0000

A(2,3) ↙                                 %求矩阵A的第二行第三列元素。

ans =

     9

A(4)  ↙                                  %求矩阵A的第四个元素。

ans =

    23

A(2:4) ↙                                 %取矩阵A的A(2),A(3),A(4)。

ans =

    0.1411    0.6931   23.0000

A(1,:) ↙                                 %取矩阵A的第一行。

ans =

     1    23    56

A(:,3)                                  %取矩阵A的第三列

ans =

    56

     9

     1

a=A(1,3) ↙                     %把矩阵A的第一行第三列元素赋值给变量a。

a =

56

     A(2,1)=100 ↙                    %把矩阵A的第二行第一列元素修改为100。

A =

       1.0000   23.0000   56.0000

     100.0000    7.0000    9.0000

      0.6931    6.0000    1.0000

 

II.    矩阵的扩充

例10:已知矩阵 ,利用A与B生成矩阵 ,

, 。

解:Matlab命令为

A=[1,3;6,9];                 %输入矩阵A

C= A↙                

C(1,3)=100;                  %把矩阵A扩充为1行3列矩阵

C ↙

C =

     1     3   100

6     9     0

B=[1,5;0,8]; ↙             %输入矩阵B

D=[A,B]   ↙              %由矩阵A与B合成矩阵D

D =

     1     3     1     5

     6     9     0     8

AA=[A,zeros(2);zeros(2),B] ↙    %由矩阵A与B合成分块矩阵AA

AA =

     1     3     0     0

     6     9     0     0

     0     0     1     5

     0     0     0     8

 

III.矩阵的部分删除

例11:已知矩阵 ,删除矩阵A的第一行。

解:Matlab命令为

A=[1 23 56;sin(3) 7 9;log(2) 6 1]; ↙              

A(1,:)=[]  ↙                         %删除矩阵A的第一行

A =

    0.1411    7.0000    9.0000

0.6931    6.0000    1.0000

 

l          矩阵的运算

A+B:  矩阵加法

A-B:  矩阵减法

A*B:  矩阵乘法

A\B:  矩阵的左除

A/B:  矩阵的右除

transpose(A)或A’:A的转置

:数k乘以A

det(A): A的行列式:

rank(A):A的秩

reshape把指定的矩阵改变形状,但是元素个数不变,

例如,行向量:
a = [1 2 3 4 5 6]

执行下面语句把它变成3行2列:
b = reshape(a,3,2)

执行结果:
b =
1 4
2 5
3 6

若a=[1 2 3
4 5 6
7 8 9]

使用reshpe后想得到b=[1 2 3 4 5 6 7 8 9]

只需要将a转置一下就可以了:
b=reshape(a',1,9)

0 0
原创粉丝点击