矩阵
来源:互联网 发布:武汉少儿编程 编辑:程序博客网 时间:2024/04/29 14:26
一、矩阵的生成
矩阵的生成主要有直接输入法、M文件生成法和文本文件生成法等。
1.直接输入法
从键盘上直接输入矩阵是方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点:
● 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内;
● 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔;
● 矩阵大小不需要预先定义;
● 矩阵元素可以是运算表达式;
● 若“[ ]”中无元素表示空矩阵。
>> A = [1 2 3; 4 5 6; 7 8 9]A = 1 2 3 4 5 6 7 8 9>>
2.利用M文件的创建
M文件是一种可以在MATLAB环境下运行的文本文件,它可以分为命令式文件和函数式文件两种。在此处主要用到的命令式M文件,用它的简单形式来创建大型矩阵。
当矩阵的规模比较大,用直接输入法就显得笨拙,出了差错也不易修改。为了解决这些问题,可以利用M文件的特点将所要输入的矩阵按格式先写入一文本文件中,并将此文件以m为其扩展名,即M文件。在MATLAB命令窗口中输入些M文件名,则所要输入的大型矩阵就被输入到内存中。
>> abcexm = 123 556 667 445 221 222 546 10 66 12 11 15 126 44 53 33>> size(exm)%我们可以通过size()函数来获取矩阵的尺寸大小ans = 4 4>>
3.利用文本创建
MATLAB中的矩阵还可以由文本文件创建,即在文件夹(通常为work文件夹)中建立.txt文件,在命令窗口中直接调用此文件名即可。
>> load data.txt>> datadata = 1 1 1 1 2 3 1 3 6>>
二、矩阵元素的引用
格式 说明
X(m,n) 表示矩阵中第m行第n列的元素
X(m,:) 表示矩阵中第m行的元素
X(:,n) 表示矩阵中第n列的元素
X(m,n1:n2) 表示矩阵中第m行中第n1到n2个元素
三、矩阵元素的修改
命令名 说明
D=[A;B C] A为原矩阵,B、C中包含要扩充的元素,D为扩充后的矩阵
A(:,n)=[] 删除A的第n列
A(m,:)=[] 删除A的第M行
A(m,n)=a 表示对A的第m行第n列的元素赋值
A(m,:)=[a b...] 对A的第m行赋值
A(:,n)=[a b...] 对A的第n列赋值
>> A = [1 2 3; 4 5 6];>> B = eye(2);>> C = zeros(2,1);>> D = [A; B C]D = 1 2 3 4 5 6 1 0 0 0 1 0>>
三、矩阵的变维
矩阵的变维可以用符号":"法和reshape函数法。reshape函数的调用形式如下:
reshape(X,m,n)将已知矩阵变维成m行n列的矩阵
>> A = 1:12A = 1 2 3 4 5 6 7 8 9 10 11 12>> B = reshape(A, 2, 6)B = 1 3 5 7 9 11 2 4 6 8 10 12>> C = zeros(3, 4) %用“:”法必须先设定修改后矩阵的形状C = 0 0 0 0 0 0 0 0 0 0 0 0>> C(:) = A(:)C = 1 4 7 10 2 5 8 11 3 6 9 12>>
四、矩阵的变向
命令名 说明
rot90(A) 将A逆时针方向旋转90度
rot90(A,k) 将A逆时针方向旋转90*k度,k可以为正整数或负整数
fliplr(A) 将A左右翻转
flipud(A) 将A上下翻转
flipdim(A, dim) 将A关于第dim进行翻转,对于矩阵来说,当dim=1,时对行进行翻转;当dim=2时,对列进行翻转
>> A = [1 2 3; 4 5 6; 7 8 9; 10 11 12]A = 1 2 3 4 5 6 7 8 9 10 11 12>> flipdim(A, 1)ans = 10 11 12 7 8 9 4 5 6 1 2 3>> flipdim(A, 2)ans = 3 2 1 6 5 4 9 8 7 12 11 10>>
五、矩阵的抽取
对矩阵元素的主要是指对角元素和上(下)三角矩阵的抽取。
命令名 说明
diag(A) 抽取主对角线上的元素向量
diag(A,k) 抽取矩阵A的第k条对角线上的元素向量。k为0时抽取主对角线上的元素向量,为正整数时抽取上方第k科对角线上的元素向量,反之亦然
diag(v) 生成一个以向量v为主对角线上的元素向量的矩阵
diag(v,k) 生成一个以向量v为第k条对角线上的元素向量的矩阵
tril(A) 提取矩阵X的主下三角部分(包括主对角线上的元素)
tril(A,k) 提取矩阵X的第k条对角线下面的部分(包括第k条对角线)
triu(A) 提取矩阵X的主上三角部分(包括主对角线上的元素)
triu(A,k) 提取矩阵X的第k条对角线上面的部分(包括第k条对角线)
>> A = magic(4)A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1>> diag(A)ans = 16 11 6 1>> diag(A, 2)ans = 3 8>> v = [1 2 3]v = 1 2 3>> diag(v)ans = 1 0 0 0 2 0 0 0 3>> diag(v, 2)ans = 0 0 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0>> tril(A)ans = 16 0 0 0 5 11 0 0 9 7 6 0 4 14 15 1>> tril(A, -1)ans = 0 0 0 0 5 0 0 0 9 7 0 0 4 14 15 0>> triu(A)ans = 16 2 3 13 0 11 10 8 0 0 6 12 0 0 0 1>> triu(A, 1)ans = 0 2 3 13 0 0 10 8 0 0 0 12 0 0 0 0>>
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- C语言中条件编译命令(#if #else #endif)
- ubuntu 12.04安装jdk
- 60_leetcode_Reorder List
- 【足迹C++primer】32、定制操作_3
- DB2命令一览
- 矩阵
- 对链表的几种简单操作
- 黑马程序员_网络编程
- 组织敏捷之路上的七点体会
- Linux记录错误的日志文档
- ORACLE表空间管理维护
- Proteus下如何添加已创建的元件(LCD12864A)
- 在TMS320F28XXX DSP上实现从flash拷贝整个程序到ram运行的方法探讨
- 【 D3.js 入门系列 --- 3 】 做一个简单的图表!