MATLAB矩阵的表示
矩阵是matlab中最基本的数据对象。
l 矩阵的建立
l 冒号表达式
l 结构矩阵和单元矩阵
1.矩阵的建立
(1)利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗号或空格分隔,不同行的元素之间用分号分隔。
>> A=[1,2,3;4,5,6;7,8,9]
A = 1 2 3
4 5 6
7 8 9
(2)利用已建好的矩阵建立更大的矩阵:一个大矩阵可以由已经建立好的小矩阵拼接而成。
>> A=[1,2,3;4,5,6;7,8,9];
>> B=[-1,-2,-3;-4,-5,-6;-7,-8,-9];
>> C=[A,B;B,A]
还可以用实部矩阵和虚部矩阵构成复数矩阵
>>B=[1,2,3;4,5,6];
>>C=[6,7,8;9,10,11];
>>A=B+i*C
A为同型矩阵,B为实部,C为虚部。i*C表示数与矩阵相乘。
2.冒号表达式
向量是矩阵的特殊类型,用:产生行向量。
如果省略步长e2,则步长为1。例如,t=0:5与t=0:1:5等价。
>> t=0:1:5
t = 0 1 2 3 4 5
还可以用linspace产生行向量。
当n省略时,自动产生100个元素。
>> x=linspace(0,pi,6)
x = 0 0.6283 1.2566 1.8850 2.5133 3.1416
3.结构矩阵和单元矩阵
(1)结构矩阵——把一组数据类型不同而逻辑上相关的数据组成一个有机的整体。
由结构数据构成的矩阵就是结构矩阵,结构矩阵里的每个元素就是结构数据类型。
格式为:
结构矩阵元素.成员名=表达式
就是给结构矩阵中的每个元素的每个成员分别赋值。
>> a(1).x1=10; a(1).x2='liu'; a(1).x3=[11,21;34,78];
>> a(2).x1=12; a(2).x2='wang'; a(2).x3=[34,191;27,578];
>> a(3).x1=14; a(3).x2='cai'; a(3).x3=[13,890;67,231];
(2)单元矩阵——每个元素可以由不同的数据类型组成的
建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵元素用大括号括起来
>> b= {10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];... 14,'cai',[13,890;67,231]}
b =
[10] 'liu' [2x2 double]
[12] 'wang' [2x2 double]
[14] 'cai' [2x2 double]
1.5矩阵元素的引用
l 矩阵元素的引用方式
l 利用冒号表达式获得子矩阵
l 利用空矩阵删除矩阵的元素
l 改变矩阵的形状
1.矩阵元素的引用方式 //下标为必须为正整数,且用圆括号括起来
(1)通过下标来引用矩阵的元素
A(3,2)表示A矩阵第3行第2列的元素。
>> A(3,2)=200
例:
>> A=[1,2,3;4,5,6];
>> A(4,5)=10
A = 1 2 3 0 0
4 5 6 0 0
0 0 0 0 0
0 0 0 0 10
注意:如果给出的行下标或列下标大于原来矩阵的行数和列数, 那么MATLAB将自动扩展原来的矩阵,并将扩展后没有赋值的矩阵元素置为0。
(2)通过序号来引用
l 在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列元素,…,一直到矩阵的最后一列元素。
l 矩阵元素的序号就是矩阵元素在内存中的排列顺序。
例“”
>> A=[1,2,3;4,5,6]
A = 1 2 3
4 5 6
>> A(3)
ans = 2 //a12是第三号元素
序号与下标是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序 号为(j-1)×m+i
矩阵元素的序号与下标可以利用sub2ind和ind2sub函数实现转换。
sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格
式为:
sub2ind函数举例。
>> A=[1:3;4:6]
A = 1 2 3
4 5 6
>> D=sub2ind(size(A),[1,2;2,2],[1,1;3,2]) //i,j为矩阵,多个元素的行列下标转化为存储序号D与ij相同
D = 1 2
6 4
ind2sub函数:将把矩阵元素的序号转换成对应的下标,其调用格式为:
ind2sub函数举例。
>> [I,J]=ind2sub([3,3],[1,3,5])
I = 1 3 2
J = 1 1 2
2.利用冒号表达式获得子矩阵
子矩阵是指由矩阵中的一部分元素构成的矩阵。用单个:作为行/列下标,代表全部行/列。
A(i,:) 第i行的全部元素
A(:,j) 第j列的全部元素
A(i:i+m,k:k+m) 第i~i+m行内且在第k~k+m列中的所有元素
A(i:i+m,:) 第i~i+m行的全部元素
例子:
>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15]
A = 1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
>> A(1:2,:)
ans = 1 2 3 4 5
6 7 8 9 10
>> A(2:3,1:2:5)
ans = 6 8 10
11 13 15
end运算符:表示某一维的末尾元素下标。
>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];
>>A(end,:) //引用最后一行元素
ans = 16 17 18 19 20
>> A([1,4],3:end) //引用第一行和第四行的从第三列到最后一列的元素
ans = 3 4 5
18 19 20
3.利用空矩阵删除矩阵的元素
空矩阵是指没有任何元素的矩阵。
>> x=[]
x = []
X是一个空矩阵。
>> A=[1,2,3,0,0;7,0,9,2,6;1,4,-1,1,8]
A = 1 2 3 0 0
7 0 9 2 6
1 4 -1 1 8
>> A(:,[2,4])=[] //删除某些元素置位空矩阵就好了2和4列
A = 1 3 0
7 9 6
1 -1 8
4.改变矩阵的形状
reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。
注意:reshape函数只是改变原矩阵的行数和列数,但并不改 变原矩阵元素个数及其存储顺序。
>> x=[23,45,65,34,65,34,98,45,78,65,43,76];
>> y=reshape(x,3,4)
Y= 23 34 98 65
45 65 45 43
65 34 78 76
A(:) :将矩阵A的每一列元素堆叠起来,成为一个列向量。
>> A =[-45,65,71;27,35,91]
A = -45 65 71
27 35 91
>> B=A(:)
B =
-45
27
65
35
71
91
即:A(:)等价于reshape(A,6,1)。
MATLAB矩阵的表示的更多相关文章
- [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置
矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:' 运算符与 .' 运算符 >>a ...
- matlab矩阵内存预分配
matlab矩阵内存预分配就意味着,划定一个固定的内存块,各数据可直接按"行.列指数"存放到对应的元素中.若矩阵中不预配置内存.则随着"行.列指数"的变大.MA ...
- MATLAB矩阵操作大全
转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...
- Eigen ,MKL和 matlab 矩阵乘法速度比较
Eigen 矩阵乘法的速度 < MKL矩阵乘法的速度,MKL矩阵乘法的速度与matlab矩阵乘法的速度相差不大,但matlab GPU版本的矩阵乘法速度是CUP的两倍,在采用float数据类型 ...
- Matlab矩阵学习三 矩阵的运算
Matlab矩阵的运算 一.矩阵的加减 在matlab中,矩阵的加减和数的加减符号一样,都是"+"和”-“,不同的是两个进行运算的矩阵维度必须相同 二.数乘 三.乘法 矩阵乘法 ...
- Matlab矩阵学习二 矩阵的修改
Matlab矩阵的修改 一.元素修改 (1).矩阵扩充 (2)矩阵删除某行或某列 删除某行:A(m,:)=[] %删除A矩阵的第m行 删除某列: A(:,n)=[] %删除A矩阵的第n列 ...
- Matlab矩阵学习一 矩阵的创建
Matlab矩阵创建 1.直接输入数值创建 矩阵元素要用[ ] 括起来,";"代表一行结束,以下创建方式也是合法的,矩阵的元素可以是实数,也可以是复数,复数用a+bi表 ...
- [Machine-Learning] matlab 矩阵常见基本操作
概述 对矩阵的主要操作,matlab 中都有现成的指令或者库函数与之对应. 矩阵最早来自于方程组的系数和常数所构成的方阵,这一概念是由19世纪的英国数学家凯利提出的. 创建矩阵 这里写的不全,但是足够 ...
- matlab————矩阵输出到txt
matlab如何输出矩阵到txt并指定数的精度 (2013-11-20 16:50:43)转载▼ 标签: matlab 输出数据 假设你的数据矩阵为a; [m n] = size(a); [filen ...
- [matlab] 矩阵操作
>_<:矩阵构造 1.简单矩阵构造 最简单的方法是采用矩阵构造符“[]”.构造1´n矩阵(行向量)时,可以将各元素依次放入矩阵构造符[]内,并且以空格或者逗号分隔:构造m´n矩阵时,每行如 ...
随机推荐
- shell命令(一)
什么是shell? Shell是一个应用程序,它连接了用户和Linux内核,让用户能够更加高效.安全.低成本地使用Linux内核,这就是Shell的本质. shell与Linux系统关系图 shell ...
- 【转】Centos7启动网卡(获取ip地址)
这里之所以是查看下IP ,是我们后面要建一个Centos远程工具Xshell 连接Centos的时候,需要IP地址,所以我们这里先 学会查看虚拟机里的Centos7的IP地址 首先我们登录操作系统 用 ...
- @ModelAttribute 的使用
@ModelAttribute注解可被应用在 方法 或 方法参数 上. 对方法使用 @ModelAttribute 注解: 注解在方法上的@ModelAttribute说明了方法的作用是用于添加一个或 ...
- 告诉你那里最受欢迎,python爬取全国13个城市旅游数据
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...
- G - Harmonic Number (II) LightOJ - 1245
算是一个找规律的题目吧. 枚举前sqrt(n)个数,数i出现的次数为n/i-n/(i+1),对答案的贡献为(n/i-n/(i+1))*i. 对于sqrt后边的数,可以直接由n/i获得,并且一定只出现一 ...
- Python巩固 - 第N天
一.函数解释: def fact(n, m = 1): s = 1 for j in range(1, n+1): s = s*j return n, m, s//m print(fact(10, 5 ...
- TCP基础概念
定义 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议 特点 TCP是一种面向广域网的通信协议,目的是在跨越多个网 ...
- Golang Map实现(一)
本文学习 Golang 的 Map 数据结构,以及map buckets 的数据组织结构. hash 表是什么 从大学的课本里面,我们学到:hash 表其实就是将key 通过hash算法映射到数组的某 ...
- 数值计算方法实验之按照按三弯矩方程及追赶法的三次样条插值 (MATLAB 代码)
一.实验目的 在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)= yi(i= 0,1…….,n)求出简单 ...
- EasyPoi 导入导出Excel时使用GroupName的踩坑解决过程
一.开发功能介绍: 简单的一个excel导入功能 二.Excel导入模板(大致模板没写全): 姓名 性别 生日 客户分类 联系人姓名 联系人部门 备注 材料 综合 采购 张三 男 1994/05/25 ...