矩阵是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矩阵的表示的更多相关文章

  1. [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置

    矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:'  运算符与  .'  运算符 >>a ...

  2. matlab矩阵内存预分配

    matlab矩阵内存预分配就意味着,划定一个固定的内存块,各数据可直接按"行.列指数"存放到对应的元素中.若矩阵中不预配置内存.则随着"行.列指数"的变大.MA ...

  3. MATLAB矩阵操作大全

    转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...

  4. Eigen ,MKL和 matlab 矩阵乘法速度比较

    Eigen 矩阵乘法的速度  < MKL矩阵乘法的速度,MKL矩阵乘法的速度与matlab矩阵乘法的速度相差不大,但matlab GPU版本的矩阵乘法速度是CUP的两倍,在采用float数据类型 ...

  5. Matlab矩阵学习三 矩阵的运算

    Matlab矩阵的运算 一.矩阵的加减 在matlab中,矩阵的加减和数的加减符号一样,都是"+"和”-“,不同的是两个进行运算的矩阵维度必须相同  二.数乘  三.乘法 矩阵乘法 ...

  6. Matlab矩阵学习二 矩阵的修改

    Matlab矩阵的修改 一.元素修改 (1).矩阵扩充   (2)矩阵删除某行或某列 删除某行:A(m,:)=[]   %删除A矩阵的第m行   删除某列: A(:,n)=[] %删除A矩阵的第n列 ...

  7. Matlab矩阵学习一 矩阵的创建

    Matlab矩阵创建 1.直接输入数值创建       矩阵元素要用[ ] 括起来,";"代表一行结束,以下创建方式也是合法的,矩阵的元素可以是实数,也可以是复数,复数用a+bi表 ...

  8. [Machine-Learning] matlab 矩阵常见基本操作

    概述 对矩阵的主要操作,matlab 中都有现成的指令或者库函数与之对应. 矩阵最早来自于方程组的系数和常数所构成的方阵,这一概念是由19世纪的英国数学家凯利提出的. 创建矩阵 这里写的不全,但是足够 ...

  9. matlab————矩阵输出到txt

    matlab如何输出矩阵到txt并指定数的精度 (2013-11-20 16:50:43)转载▼ 标签: matlab 输出数据 假设你的数据矩阵为a; [m n] = size(a); [filen ...

  10. [matlab] 矩阵操作

    >_<:矩阵构造 1.简单矩阵构造 最简单的方法是采用矩阵构造符“[]”.构造1´n矩阵(行向量)时,可以将各元素依次放入矩阵构造符[]内,并且以空格或者逗号分隔:构造m´n矩阵时,每行如 ...

随机推荐

  1. 墨者学院靶场:uWSGI(CVE-2018-7490)路径遍历漏洞复现

    0x01漏洞简介 uWSGI是一款Web应用程序服务器,它实现了WSGI.uwsgi和http等协议.uWSGI 2.0.17之前版本中存在路径遍历漏洞,该漏洞源于程序没有正确的处理DOCUMENT_ ...

  2. 从3dMax导出供threeJS使用的带动作模型与加载

    评论区发现的建议,最近没空测试,先贴这 还有好多人说找不到插件的 https://pan.baidu.com/s/1Q5g0... 密码:b43e . 应该是他们现在只是维护blender,只有这个的 ...

  3. 在VS Code下配置Julia

    原来尝试用Sublime text3配置Julia,但是老是会出一些问题,所以直接在VS code下配置了 1.下载Julia 2.安装,安装过程和其他得软件安装一样,可以改变安装路径 3.安装完成后 ...

  4. 小程序—银行、券商们下一代APP的进阶方向

    传统金融机构们的App——尤其以手机银行.手机证券为最,发展到今天,已经产生一系列的问题:从用户角度看,体验普遍不好.高度同质化:从业务运营角度看,几乎没有什么“运营”的抓手:从IT角度看,投入产出比 ...

  5. 这届网友实在是太有才了!用python爬取15万条《我是余欢水》弹幕

    年初时我们用数据解读了几部热度高,但评分差强人意的国产剧,而最近正午阳光带着两部新剧来了,<我是余欢水>和<清平乐>,截止到目前为止,这两部剧在豆瓣分别为7.5分和7.9分,算 ...

  6. Python爬虫某招聘网站的岗位信息

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:阿尔法游戏 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  7. ORA-0245

    经常有客户报错ORA-0245 1.11.2 rac环境, rman存在snap控制文件路径,默认是文件系统[非共享,导致备份控制文件报错] 解决方法:将snap路径配置到ASM磁盘组共享路径[nfs ...

  8. 【特征检测】BRISK特征提取算法

    [特征检测]BRISK特征提取算法原创hujingshuang 发布于2015-07-24 22:59:21 阅读数 17840 收藏展开简介        BRISK算法是2011年ICCV上< ...

  9. Git把本地代码推送到远程github仓库

    运用Git版本控制系统进行代码的管理,以便于团队成员的协作,由于之前是使用svn来进行版本控制,所以对于Git使用还有待熟练掌握.Git与svn类似,个人认为两者之间比较直观的区别就是 Git 不需要 ...

  10. IO多路复用小故事

    背景故事 小王住在某城市, 生活并长大. 最近, 小城引进了一个企业, 邮局. 这个邮局可了不得, 只要你花上几角钱, 就可以将一封信送到千里之外的朋友手中. 小王也趁机体验了一把, 得劲. 这天, ...