目录
MATLAB数组
MATLAB中的特殊阵列
MATLAB 魔方矩阵
MATLAB 多维数组
详细例子
MATLAB数组函数
详细示例
MATLAB数组排序
MATLAB单元阵列
注意
详细例子
MATLAB在单元格上阵SEO靠我列访问数据
在MATLAB中所有的数据类型的变量是多维数组,向量是一维阵列,矩阵是二维数组。
先介绍一些特殊的数组阵列。
MATLAB中会使用一些函数来建立一些特殊的SEO靠我阵列,对于所有这些函数,一个参数创建一个正方形阵列,双参数创建矩形阵列。
使用 zeros() 函数建立一个元素为零的数组:
例如:
zeros(5)MATLAB 执行上述指令,返回以下结果:
生成一个 5 SEO靠我* 5 的全 0 矩阵。
ans =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0使用 ones() 函数建立一个数组:
例如:
ones(4,3)MATSEO靠我LAB执行上述指令,返回以下结果:
生成一个 4 * 3 的全 1 矩阵。
ans = 1 1 11 1 11 1 11 1 1使用 eye() 函数创建一个矩阵:
例如:
eye(4)MATLAB执行上述指SEO靠我令,返回以下结果:
生成一个 4 * 4 的对角矩阵,顾名思义就是,在对角处都为1,相关概念需要有线性代数的基础。
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1使用 randSEO靠我() 函数建立一个数组(0,1)上均匀分布的随机数:
例如:
rand(3, 5)MATLAB执行上述指令,返回以下结果:
ans = 0.8147 0.9134 0.2785 0.9649 0.9572 SEO靠我0.9058 0.6324 0.5469 0.1576 0.4854 0.1270 0.0975 0.9575 0.9706 0.8003产生相同的总和,当它的元素加入逐行,逐列SEO靠我或对角线魔方是一个正方形。
使用 magic() 函数创建一个魔方阵列,它需要一个单数的参数,该参数必须是一个大于或等于3的标量。
例如:
magic(4)MATLAB执行上述指令,返回以下结果:
可以发现生SEO靠我成的矩阵,任意一行、任意一列、任意对角的数相加都为34,这就是魔方矩阵。
ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1在MATLAB中,SEO靠我一个阵列如果具有两个以上的维度则被称为多维数组。
在MATLAB中的多维数组是正常的两维矩阵的延伸。
MATLAB中需要先创建一个二维数组然后对该二维数组进行扩展,这样才能生成一个多维数组。
例如,我们先建SEO靠我立一个二维数组a。
a = [7 9 5; 6 1 9; 4 3 2]MATLAB执行上述指令,返回以下结果:
a =7 9 56 1 94 3 2数组 a 是一个 3x3 阵列,通过提供的值,我们可以添SEO靠我加一个第三维,例如:
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]MATLAB执行上述指令,返回以下结果:
a(:,:,1) =7 9 56 1 94 3 2a(:,:,2) =1SEO靠我 2 34 5 67 8 9同样,我们也可以使用 ones(), zeros() 或 rand() 函数建立多维数组。
例如:
b = rand(4,3,2)MATLAB执行上述指令,返回以下结果:
b(:SEO靠我,:,1) =0.0344 0.7952 0.64630.4387 0.1869 0.70940.3816 0.4898 0.75470.7655 0.4456 0.2760b(:,:,2) =0.6SEO靠我797 0.4984 0.22380.6551 0.9597 0.75130.1626 0.3404 0.25510.1190 0.5853 0.5060还能够使用 cat() 函数来建立多维数组,它SEO靠我结合沿着指定的维度的数组列表:
cat() 函数的语法是:
B = cat(dim, A1, A2...)注意:
B 是新建的数组;
A1, A2, ... 是要连接的阵列;
dim 是一起串联阵列的维度。
在MATLAB中建立一个脚本文件,输入下述代码:
a = [9 8 7; 6 5 4; 3 2 1]; b = [1 2 3; 4 5 6; 7 8 9]; c = SEO靠我cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])运行该指令时,显示结果:
将矩阵 a 和矩阵 b 和另一个未命名矩阵拼接在一起,形成一个三维的矩阵。
c(:,:,1) =9 8 7SEO靠我6 5 43 2 1 c(:,:,2) =1 2 34 5 67 8 9 c(:,:,3) =2 3 14 7 83 9 0MATLAB提供以下功能SEO靠我进行排序,旋转,置乱,重塑或移动数组的内容。
函数目的length矢量长度或最大阵列尺寸ndims数组维数numel数组元素的数目size数组维度iscolumn确定输入是否是列向量isempty确定数SEO靠我组是否为空ismatrix确定输入是否为矩阵isrow确定输入是否为行向量isscalar确定输入是否为标量isvector确定输入是否为矢量blkdiag从输入参数构造块对角矩阵circshift循SEO靠我环移位ctranspose复数共轭转置diag矩阵的对角矩阵和对角线flipdim沿指定维度翻转数组fliplr从左到右翻转矩阵flipud将矩阵向下翻转ipermuten-维阵列的反置换维数permSEO靠我ute重新排列 N 维数组的维数repmat复制和平铺数组reshape重塑数组rot90旋转矩阵90度shiftdim移位维度issorted确定集合元素是否按排序顺序排列sort按升序或降序对数组SEO靠我元素进行排序sortrows按升序对行排序squeeze删除单维度transpose转置vectorize矢量化表达式上述的一些函数将由下列例子说明。
长度,尺寸和数量的元素:
在MATLAB中建SEO靠我立一个脚本文件,输入下述代码:
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % 数组 x 的长度 y SEO靠我= rand(3, 4, 5, 2); ndims(y) % 数组 y 的维度 s = [Zara, Nuha, Shamim, Riz, Shadab]; SEO靠我 numel(s) % 数组 s 的元素个数运行该指令,显示以下结果:
ans =8 ans =4 ans =23循环移位的数组元素:
在MATLAB中建立一个脚本文件SEO靠我,输入下述代码:
a = [1 2 3; 4 5 6; 7 8 9] % 原始的矩阵 y b = circshift(a,1) % 矩阵向下循环移动一行 c = circSEO靠我shift(a,[1 -1]) % 矩阵向下移动一行,再向左移动一列运行该指令,显示以下结果:
a =1 2 34 5 67 8 9b =7 8 91 2 34 5 6c =8 9 72 3 15 6 SEO靠我4在MATLAB中建立一个脚本文件,输入下述代码:
v = [ 23 45 12 9 5 0 19 17] %水平数组 v sort(v) %对数组 v 排序 SEO靠我 m = [2 6 4; 5 3 9; 2 0 1] % 二维数组 sort(m, 1) % 以行来排序 sort(m, 2) % 以列来排序运行该指令,显示以SEO靠我下结果:
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 ansSEO靠我 =2 0 12 3 45 6 9 ans =2 4 63 5 90 1 2单元阵列的阵列中每个单元格可以存储不同的维度和数据类型的数组的索引单元格。
单元格函数用于SEO靠我建立一个单元阵列。
单元格函数的语法如下:
C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj)C 是单元阵列;
dimSEO靠我 是一个标量整数或整数向量,指定单元格阵列C的尺寸;
dim1, ... , dimN 是标量整数指定尺寸的C;
obj 是以下内容之一
Java 数组或对象
.NET阵列 System.String 类型或SEO靠我 System.Object
在MATLAB中建立一个脚本文件,输入下述代码:
c = cell(2, 5); c = {Red, Blue, Green, Yellow, WhiSEO靠我te; 1 2 3 4 5}运行该指令,显示以下结果:
c = Red Blue Green Yellow White[ 1] [ 2] [ 3] [ 4] [ 5]使SEO靠我用两种方法来引用单元阵列的元素:
封闭的索引在第一个 bracket (),是指一组单元格
封闭的在大括号{},的索引单个单元格内的数据
括在第一支架的索引,它指的是单元格的集。
单元阵列索引平稳括号单元格集SEO靠我合。
例如:
c = {Red, Blue, Green, Yellow, White; 1 2 3 4 5}; c(1:2,1:2)MATLAB执行上述指令,返回以下结果:
ans = RSEO靠我ed Blue[ 1] [ 2]同样可以用花括号“{ }”索引访问单元格的内容。
例如:
c = {Red, Blue, Green, Yellow, White; 1 2 3 4 5}; SEO靠我 c{1, 2:4}MATLAB执行上述指令,返回以下结果:
ans =Blue ans =Green ans =Yellow网站备案号:浙ICP备17034767号-2