MATLAB中所有数据类型的所有变量都是多维数组。向量是一维数组,矩阵是二维数组。

MATLAB中的特殊数组


zeros()函数是用来创建一个全零的数组
例如

zeros(5)

MATLAB执行上面示例代码,得到以下结果 -

Trial>> zeros(5)
ans =0     0     0     0     00     0     0     0     00     0     0     0     00     0     0     0     00     0     0     0     0

ones()函数创建一个所有元素为1的数组
例如

ones(4,3)

MATLAB执行上面示例代码,得到以下结果

Trial>> ones(4,3)ans =1     1     11     1     11     1     11     1     1

eye()函数创建一个单位矩阵。
例如

eye(4)

执行上面示例代码,得到以下结果

Trial>> eye(4)ans =1     0     0     00     1     0     00     0     1     00     0     0     1

rand()函数在(0,1) 上创建均匀分布的随机数的数组
例如

rand(3, 5)

执行上面示例代码,得到以下结果

Trial>> rand(3, 5)ans =0.8147    0.9134    0.2785    0.9649    0.95720.9058    0.6324    0.5469    0.1576    0.48540.1270    0.0975    0.9575    0.9706    0.8003

魔方


魔方是一个平方,它产生相同的和,它的元素被逐行,逐列或者对角线地添加时。
magic()函数创建一个魔术方阵。这需要一个参数,指定正方形的大小。 参数必须是大于或等于3的标量。

magic(4)

执行上面示例代码,得到以下结果

Trial>> magic(4)ans =16     2     3    135    11    10     89     7     6    124    14    15     1

多维数组


具有二维以上的数组在MATLAB中被称为多维数组。MATLAB中的多维数组是正常二维矩阵的扩展。
通常要生成一个多维数组,首先创建一个二维数组然后再扩展它。
例如,让我们创建一个二维数组a。

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

MATLAB
执行上面示例代码,得到以下结果

Trial>> a = [7 9 5; 6 1 9; 4 3 2]a =7     9     56     1     94     3     2

数组a是3×3数组; 可以通过提供以下值来添加第三维:

a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]

执行上面示例代码,得到以下结果

a =ans(:,:,1) =0   0   00   0   00   0   0ans(:,:,2) =1   2   34   5   67   8   9

还可以使用ones(),zeros()或rand()函数来创建多维数组。
例如

b = rand(4,3,2)

执行上面示例代码,得到以下结果

Trial>> b = rand(4,3,2)b(:,:,1) =0.1419    0.9595    0.93400.4218    0.6557    0.67870.9157    0.0357    0.75770.7922    0.8491    0.7431b(:,:,2) =0.3922    0.0318    0.82350.6555    0.2769    0.69480.1712    0.0462    0.31710.7060    0.0971    0.9502

也可以使用cat()函数来构建多维数组。它沿着指定的维度连接数组列表
cat()函数的语法是

B = cat(dim, A1, A2...)

其中

  • B是创建的新阵列
  • A1,A2,…是要连接的数组
  • dim是连接数组的大小

例子
创建脚本文件并在其中键入以下代码

a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])

执行上面示例代码,得到以下结果

c(:,:,1) =9     8     76     5     43     2     1
c(:,:,2) =1     2     34     5     67     8     9
c(:,:,3) =2     3     14     7     83     9     0

数组函数


MATLAB提供以下函数来对数组内容进行排序,旋转,排列,重新成形或移位。

函数 描述
length 向量的大小或数组的长度
ndims 数组的维数
numel 数组的元素数量
size 数组的维度
iscolumn 确定输入是否为列向量
isempty 确定数组是否为空
ismatrix 确定输入是否为矩阵
isrow 确定输入是否为行向量
isscalar 确定输入是否为标量
isvector 确定输入是否为向量
blkdiag 从输入参数构造块对角矩阵
circshift 循环移位
ctranspose 复共轭转置
diag 矩阵对角矩阵和对角线
flipdim 沿着指定的尺寸翻转数组
fliplr 从左到右翻转矩阵
flipud 向下翻转矩阵
ipermute 反转N-D阵列的置换维度
permute 重新排列N-D数组的维度
repmat 复制和平铺数组
reshape 重塑数组
rot90 旋转矩阵90度
shiftdim 移动维度
issorted 确定设置元素是否按排序顺序
sort 按升序或降序排列数组元素
sortrows 按升序排列行
squeeze 删除单例维度
transpose 转置
vectorize 向量化表达式

例子

以下的例子说明了上面提到的一些函数。
长度,尺寸和元素数量:
创建脚本文件并键入以下代码

x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x)  % length of x vector
y = rand(3, 4, 5, 2);
ndims(y)    % no of dimensions in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s)   % no of elements in s

运行文件时,显示以下结果

ans =  8
ans =  4
ans =  23

数组元素的循环移位
创建脚本文件并在其中键入以下代码

a = [1 2 3; 4 5 6; 7 8 9]  % the original array a
b = circshift(a,1)         %  circular shift first dimension values down by 1.
c = circshift(a,[1 -1])    % circular shift first dimension values % down by 1 % and second dimension values to the left % by 1.

运行文件文件时,显示以下结果

a =1     2     34     5     67     8     9b =7     8     91     2     34     5     6c =8     9     72     3     15     6     4

排序数组创建脚本文件并在其中键入以下代码

v = [ 23 45 12 9 5 0 19 17]  % horizontal vector
sort(v)                      % sorting v
m = [2 6 4; 5 3 9; 2 0 1]    % two dimensional array
sort(m, 1)                   % sorting m along the row
sort(m, 2)                   % sorting m along the column

运行文件文件时,显示以下结果

v =23    45    12     9     5     0    19    17
ans =0     5     9    12    17    19    23    45
m =2     6     45     3     92     0     1
ans =2     0     12     3     45     6     9
ans =2     4     63     5     90     1     2

单元阵列单元格阵列是索引单元的数组,其中每个单元格可以存储不同维度和数据类型的数组。
单元格函数用于创建单元格数组。单元格函数的语法是

C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)

其中

  • C是单元阵列;
  • dim是一个整数或整数向量,它指定单元格数组C的维数;
  • dim1,…,dimN是指定C大小的标量整数;
  • obj是以下之一:
    – Java数组或对象
    – 类型为System.String或System.Object的.NET数组

示例


创建脚本文件并在其中键入以下代码

c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}

运行文件时,得到以下结果

c =
{[1,1] = Red[2,1] =  1[1,2] = Blue[2,2] =  2[1,3] = Green[2,3] =  3[1,4] = Yellow[2,4] =  4[1,5] = White[2,5] =  5
}

访问单元格数组数据有两种方法来引用单元格数组的元素

将第一个括号()中的索引包围,以引用单元格集将大括号{}中的索引括起来,以引用单个单元格内的数据
当将索引包围在第一个括号中时,它指的是这组单元格。
括号中的单元格数组索引是指单元格集。
例如:

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)

运行文件时,得到以下结果

ans =
{[1,1] = Red[2,1] =  1[1,2] = Blue[2,2] =  2
}

还可以通过用花括号索引来访问单元格的内容。
例如

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}

运行文件时,得到以下结果

ans = Blue
ans = Green
ans = Yellow

REF: https://www.yiibai.com/matlab/matlab_arrays.html

Matlab中数组的常见用法相关推荐

  1. 掌握shell编程中数组的常见用法及示例

    From: http://www.embeddedlinux.org.cn/html/jishuzixun/201211/19-2386.html 给大家分享下数组的用法小例子,希望能给大家一点帮助. ...

  2. 轻松掌握shell编程中数组的常见用法及示例

    缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习 ...

  3. MATLAB中randi函数的用法

    MATLAB中randi函数的用法 均匀分布的伪随机整数 语法 X = randi(imax) X = randi(imax,n) X = randi(imax,sz1,...,szN) X = ra ...

  4. matlab的filter函数,filter函数用法 matlab中filter函数的用法

    matlab中filter函数的用法如果你深爱的人此刻在你身边陪你,你怎么会有时间来看这些文字呢 离散系统的差分方程为 2y[k]-y[-1]-3y[k-2]=2x[k]-x[k-1] x[k]=(0 ...

  5. matlab中 repmat 函数的用法

    一.repmat 函数定义 B = repmat(A,n) B = repmat(A,r1,-,rN) B = repmat(A,r) 这是一个处理矩阵内容有重复时使用,其功能是以A的内容堆叠在(r1 ...

  6. matlab imfilter函数,Matlab中imfilter()函数的用法

    Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波. 用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,.. ...

  7. matlab i型级联filter,Matlab中filter,conv,impz用法(最新整理)

    <Matlab中filter,conv,impz用法(最新整理)>由会员分享,可在线阅读,更多相关<Matlab中filter,conv,impz用法(最新整理)(5页珍藏版)> ...

  8. matlab roundn函数_columns函数的使用方法 matlab中round函数具体用法

    Excel中column函数的使用方法是什么?其实小编会说分手是想被挽留,你却顺口祝小编自由. 只读属性,返回 TextStream 文件中当前字符位置的列号. 语法: =Column(referen ...

  9. matlab怎么输入二维数组,[转载]matlab中数组的输入

    1 matlab中数组的输入 在matlab中写数组,直接输入元素的数组,应用中括号[],成行向量时,元素之间用空格或逗号隔开,成列向量时,分列处用分号隔开,也可以对相应行向量作转置,为在中括号外加单 ...

  10. MATLAB中freqz函数的用法

    本文引用自乱七八糟<MATLAB中freqz函数的用法>  FREQZ 是计算数字滤波器的频率响应的函数 [H,W] = FREQZ(B,A,N)returns the N-point c ...

最新文章

  1. TensorFlow学习笔记之一(TensorFlow基本介绍)
  2. mysql 事物的持久性是指_详解MySQL中事务的持久性实现原理
  3. 笔记本老出现计算机,电脑老是自动重启,教您如何有效解决这个问题
  4. linux 日志乱码_这些 Linux 技巧大大提高你的工作效率
  5. 使用tar进行磁带备份的命令汇总
  6. 详解Parcel:快速,零配置web应用打包工具
  7. php syslog服务器,Linux Syslog日志服务器的搭建
  8. python集成学习算法_python: 一句话说机器学习算法和调参-集成学习篇
  9. 顶级SaaS公司的共同基因都有什么?
  10. 【图像增强】基于matlab模糊集图像增强【含Matlab源码 394期】
  11. golang生成随机数
  12. Java Ucase_VBScript字符串期函数(InStr、Left、Len、Mid、Replace、StrComp、UCase……)...
  13. 按键控制LED亮灭(CC2530)
  14. 本地电脑连接阿里云RDS Mysql数据库问题(10038错误)
  15. 【03月13日】建筑材料行业的估值高度排名
  16. MyBatis-plus 查询 模糊查询的使用
  17. 怎么禁用chrom'停用开发者模式'弹窗
  18. Sencha Touch中 xclass和xtype区别
  19. 编译原理期末复习—第一章概论
  20. 这一波区块链风口,你怎么看?

热门文章

  1. XSLT Transform
  2. (Hide my Windows)隐藏指定的应用窗口及托盘图标
  3. (自动重命名论文)PaperDownloader (Chrome插件) + EndNote (附下载链接) + Zotero
  4. IAR平台下使用STM32的DSP配置方法
  5. Fiddler工具中显示服务器IP地址的方法
  6. step1: python scrapy安装
  7. python初体验(2)——面向对象篇
  8. [Remoting]在.NET環境實作Flex 3 Remoting - (2) Flex Builder 環境設定
  9. Python3 正则表达式学习
  10. 【学术杂谈】博士毕业都去哪儿了,谈谈学术的这条路该如何走