Matlab中数组的常见用法
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中数组的常见用法相关推荐
- 掌握shell编程中数组的常见用法及示例
From: http://www.embeddedlinux.org.cn/html/jishuzixun/201211/19-2386.html 给大家分享下数组的用法小例子,希望能给大家一点帮助. ...
- 轻松掌握shell编程中数组的常见用法及示例
缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习 ...
- MATLAB中randi函数的用法
MATLAB中randi函数的用法 均匀分布的伪随机整数 语法 X = randi(imax) X = randi(imax,n) X = randi(imax,sz1,...,szN) X = ra ...
- matlab的filter函数,filter函数用法 matlab中filter函数的用法
matlab中filter函数的用法如果你深爱的人此刻在你身边陪你,你怎么会有时间来看这些文字呢 离散系统的差分方程为 2y[k]-y[-1]-3y[k-2]=2x[k]-x[k-1] x[k]=(0 ...
- matlab中 repmat 函数的用法
一.repmat 函数定义 B = repmat(A,n) B = repmat(A,r1,-,rN) B = repmat(A,r) 这是一个处理矩阵内容有重复时使用,其功能是以A的内容堆叠在(r1 ...
- matlab imfilter函数,Matlab中imfilter()函数的用法
Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波. 用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,.. ...
- matlab i型级联filter,Matlab中filter,conv,impz用法(最新整理)
<Matlab中filter,conv,impz用法(最新整理)>由会员分享,可在线阅读,更多相关<Matlab中filter,conv,impz用法(最新整理)(5页珍藏版)> ...
- matlab roundn函数_columns函数的使用方法 matlab中round函数具体用法
Excel中column函数的使用方法是什么?其实小编会说分手是想被挽留,你却顺口祝小编自由. 只读属性,返回 TextStream 文件中当前字符位置的列号. 语法: =Column(referen ...
- matlab怎么输入二维数组,[转载]matlab中数组的输入
1 matlab中数组的输入 在matlab中写数组,直接输入元素的数组,应用中括号[],成行向量时,元素之间用空格或逗号隔开,成列向量时,分列处用分号隔开,也可以对相应行向量作转置,为在中括号外加单 ...
- MATLAB中freqz函数的用法
本文引用自乱七八糟<MATLAB中freqz函数的用法> FREQZ 是计算数字滤波器的频率响应的函数 [H,W] = FREQZ(B,A,N)returns the N-point c ...
最新文章
- TensorFlow学习笔记之一(TensorFlow基本介绍)
- mysql 事物的持久性是指_详解MySQL中事务的持久性实现原理
- 笔记本老出现计算机,电脑老是自动重启,教您如何有效解决这个问题
- linux 日志乱码_这些 Linux 技巧大大提高你的工作效率
- 使用tar进行磁带备份的命令汇总
- 详解Parcel:快速,零配置web应用打包工具
- php syslog服务器,Linux Syslog日志服务器的搭建
- python集成学习算法_python: 一句话说机器学习算法和调参-集成学习篇
- 顶级SaaS公司的共同基因都有什么?
- 【图像增强】基于matlab模糊集图像增强【含Matlab源码 394期】
- golang生成随机数
- Java Ucase_VBScript字符串期函数(InStr、Left、Len、Mid、Replace、StrComp、UCase……)...
- 按键控制LED亮灭(CC2530)
- 本地电脑连接阿里云RDS Mysql数据库问题(10038错误)
- 【03月13日】建筑材料行业的估值高度排名
- MyBatis-plus 查询 模糊查询的使用
- 怎么禁用chrom'停用开发者模式'弹窗
- Sencha Touch中 xclass和xtype区别
- 编译原理期末复习—第一章概论
- 这一波区块链风口,你怎么看?
热门文章
- XSLT Transform
- (Hide my Windows)隐藏指定的应用窗口及托盘图标
- (自动重命名论文)PaperDownloader (Chrome插件) + EndNote (附下载链接) + Zotero
- IAR平台下使用STM32的DSP配置方法
- Fiddler工具中显示服务器IP地址的方法
- step1: python scrapy安装
- python初体验(2)——面向对象篇
- [Remoting]在.NET環境實作Flex 3 Remoting - (2) Flex Builder 環境設定
- Python3 正则表达式学习
- 【学术杂谈】博士毕业都去哪儿了,谈谈学术的这条路该如何走