数组运算:
数与数组加减:k+/-A %k加或减A的每个元素
数组乘数组: A.*B %对应元素相乘
数组乘方:  A.^k %A的每个元素k次方;k.^A,分别以k为底A的各元素为指数求幂值
数除以数组: k./A和A./k %k分别被A的元素除
数组除法: 左除A.\B,右除B./A %对应元素相除
矩阵运算:
数与矩阵加减:k+/-A %等价于k*ones(size(A))+/-A
矩阵乘法: A*B %按数学定义的矩阵乘法规则
矩阵乘方:  A^k %k个矩阵A相乘
矩阵除法: 左除A\B右除B/A %分别为AX=B和XA=B的解
可见,数组的运算很简单。若不考虑数学意义时,矩阵是数组的二维版本。
构造数组:
1、直接构造:用空格或逗号间隔数组元素
x=[1,2,3,4,5,6]
2、增量法构造:使用冒号操作符创建数组
a=first:end %递增,且步长为1的数组
a=first:step:end %指定增量步长值创建任何等差序列
3、用linspace函数构造
x=linspace(first,last,num) %需要指定首尾值和元素总个数,步长根据num平均分配
构造矩阵
1、简单创建方法
用[ ],逗号或空格格开各元素,分号隔开各行,注意各行具有相同的元素个数。
2、构造特殊矩阵
ones,zeros,eye,diag,magic,rand,randn,randpem
.....
*****************************************************************************************
数组运算:
转置 A.' %非共轭转置,相当于(conj(A'))
数组加与减 A+B与A-B %对应元素之间加减
数乘数组 k.*A或A.*k % k乘A的每个元素
数与数组加减 k+A与k-A %k加(减)A的每个元素
数组乘数组 A.*B
数组乘方 A.^k %A的每个元素进行k次方运算
k.^A %以k底的,分别以A的元素为指数求幂值
数除以数组 k./A和A.\k % k分别被B的元素除
数组除法 左除A.\B,右除B./A
矩阵运算:
矩阵转置 A' %共轭转置
加减 A+B A-B
数乘矩阵 k*A或A*k %上三项同数组运算
矩阵乘法 A*B %按数学定义的矩阵乘法规则
矩阵乘方 A^k %k个矩阵A相乘
数与矩阵加减 k+A与k-A %等价于k*ones(size(A))+-A
矩阵除法 左除A\B,右除B/A %分别为AX=B和XA=B的解
*****************************************************************************************************
例:
A=[1 2;3 4];B=[4 3;2 1];
r1=100+A
r1 =
101 102
103 104

r2_1=A*B,r2_2=A.*B
r2_1 =
8 5
20 13
r2_2 =
4 6
6 4

r3_1=A\B,r3_2=A.\B
r3_1 =
-6.0000 -5.0000
5.0000 4.0000
r3_2 =
4.0000 1.5000
0.6667 0.2500

r4_1=B/A,r4_2=B./A
r4_1 =
-3.5000 2.5000
-2.5000 1.5000
r4_2 =
4.0000 1.5000
0.6667 0.2500

r5_1=A.^2,r5_2=A^2
r5_1 =
1 4
9 16
r5_2 =
7 10
15 22

r6_1=2.^A
r6_1 =
2 4
8 16
*****************************************************************************************
size(a)表示矩阵每个维度的长度
比如size([1 2 3;4 5 6])
等于[2 3]
表示他有2行3列
size([1 2 3])
等于[1 3]
表示他有1行3列
另外size(a,n)表示矩阵a在第n个维度下的长度。
比如size([1 2 3;4 5 6],1)
等于2,表示有2行
size([1 2 3;4 5 6],2)
等于3,表示有3列

length(a)表示矩阵a的最大的长度,即max(size(a))
比如length([1 2 3;4 5 6])
等于3,因为2和3中最大是3
当a是向量时,即表示向量的元素个数,因为向量总是1×n或n×1的,而n一定大于或等于1.所以得到的结果一定是n

ndims(a)表示矩阵a的维数,即length(size(a))
比如ndims([1 2 3;4 5 6])
等于2,因为他是二维矩阵
matlab认为向量也是二维矩阵,只不过其中一个维度的长为1.
因此ndims([1 2 3])也等于2

我们可以构造一个三维甚至更高维度的矩阵,
比如a=cat(3,[1 2 3 4;5 6 7 8],[9 8 7 6;5 4 3 2])
他除了行和列以外还有一个维度,我们暂且把它叫做高度。
也就是说a有两层,第一层是[1 2 3 4;5 6 7 8],第二层是[9 8 7 6;5 4 3 2]
此时有size(a)=[2 4 2]
即2行4列2层
length(a)=4
([2 4 2]中最大为4)
ndims(a)=3
(因为他有3个维度)

matlab矩阵与数组的更多相关文章

  1. matlab入门笔记(二):矩阵和数组

    摘自<matlab从入门到精通>胡晓东 matlab最基本的数据结构就是矩阵,一个二维的.长方形形状的数据,可以用易于使用的矩阵形式来存储,这些数据可以是数字,字符.逻辑状态,甚至是mat ...

  2. matlab矩阵合并及相关运算

    1.matlab允许向量(和矩阵)合并,且matlab提供了两种合并方式,[a,b]和[a;b],两者的结果是不一样的. a=rand(2,3): b=rand(2,3): c=[a;b]: d=[a ...

  3. MATLAB元胞数组

    MATLAB元胞数组 元胞数组: 元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵.组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元 ...

  4. matlab的cell数组

    matlab的cell数组 元胞数组: 元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵.组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每 ...

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

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

  6. matlab矩阵内存预分配

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

  7. Leetcode 566. Reshape the Matrix 矩阵变形(数组,模拟,矩阵操作)

    Leetcode 566. Reshape the Matrix 矩阵变形(数组,模拟,矩阵操作) 题目描述 在MATLAB中,reshape是一个非常有用的函数,它可以将矩阵变为另一种形状且保持数据 ...

  8. MATLAB矩阵操作大全

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

  9. R学习笔记 第二篇:矩阵、数组和列表

    向量是一维的,只有长度(行),没有其他维度.R中存在更高维度的对象,他们是矩阵,数据框,数组.这些对象的下标都是使用中括号[],第一个维度是row,第二个维度是column,依次类推,[row,col ...

随机推荐

  1. DBGrid1

    A.ShowMessage(IntToStr(Column.Index));   B.ShowMessage(IntToStr(dbgrid1.SelectedField.Index)); .得到当前 ...

  2. 图解Skip List——本质是空间换时间的数据结构,在lucene的倒排列表,bigtable,hbase,cassandra的memtable,redis中sorted set中均用到

    Skip List的提出已有二十多年[Pugh, W. (1990)],却依旧应用广泛(Redis.LevelDB等).作为平衡树(AVL.红黑树.伸展树.树堆)的替代方案,虽然它性能不如平衡树稳定, ...

  3. python TypeError: 'NoneType' object is not iterable

    list(set(map(lambda tp_id : tp_id if not ('#' in tp_id) and len(tp_id.strip().replace('\n', '')) > ...

  4. NOIp2018集训test-10-16 (bike day2)

    “毕姥爷:今天的题好简单啊,你们怎么考得这么烂啊,如果是noip你们就凉透了啊“ 今天的题难度应该是3.2.1递减的,但是我不知道哪根筋没搭对,平时我最多1h多就弃题了,今天硬生生写了2h20min的 ...

  5. 洛谷【P1080】国王游戏

    我对贪心的理解:https://www.cnblogs.com/AKMer/p/9776293.html 题目传送门:https://www.luogu.org/problemnew/show/P10 ...

  6. HDU1114(完全背包装满问题)

    Piggy-Bank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  7. QT4.8.5+qt-vs-addin-1.1.11+VS2010安装配置和QT工程的新建和加载

    1.下载windows下的QT库 QT4.8.5 for vs2010: http://download.qt-project.org/official_releases/qt/4.8/4.8.5/q ...

  8. SQL介绍(1)

    SQL 是用于访问和处理数据库的标准的计算机语言. SQL,指结构化查询语言,全称是 Structured Query Language. SQL 让您可以访问和处理数据库. SQL 是一种 ANSI ...

  9. Python函数式编程(把函数作为参数传入)

    map:接受两个参数(函数,Iterable),map将传入的函数依次作用于Iterable的每个元素,并且返回新的Iterable def f(x): return x*x r = map(f,[1 ...

  10. delphi 线程教学第一节:初识多线程

    第一节:初识多线程   1.为什么要学习多线程编程?   多线程(多个线程同时运行)编程,亦可称之为异步编程. 有了多线程,主界面才不会因为耗时代码而造成“假死“状态. 有了多线程,才能使多个任务同时 ...