English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Todos los variables de todos los tipos de datos en MATLAB son arrays multidimensionales. Un vector es un array unidimensional, y una matriz es un array bidimensional.
Hemos discutido vectores y matrices. En este capítulo, discutiremos arrays multidimensionales. Pero antes de eso, hablemos de algunos tipos de arrays especiales.
En esta sección, discutiremos algunas funciones para crear arrays especiales. Para todas estas funciones, un parámetro crea un array cuadrado, y dos parámetros crean un array rectangular.
zeros()la función crea un array de ceros.-
Por ejemplo-
zeros(5)
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
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()la función crea una1el array-
Por ejemplo-
ones(4,3)
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
ans = 1 1 1 1 1 1 1 1 1 1 1 1
eye()la función crea una matriz unitaria.
Por ejemplo-
eye(4)
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
rand()la función en (0,1) crea un array de números aleatorios distribuidos uniformemente-
Por ejemplo-
rand(3, 5)
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
ans = 0.8147 0.9134 0.2785 0.9649 0.9572 0.9058 0.6324 0.5469 0.1576 0.4854 0.1270 0.0975 0.9575 0.9706 0.8003
魔方cuadrado mágico
es un cuadrado en el que, al sumar sus elementos por filas, columnas o diagonales, se produce la misma suma.magic()3de escalar. La función crea una matriz mágica. Acepta un único parámetro, que indica el tamaño del cuadrado. El parámetro debe ser mayor o igual que
magic(4)
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
Los arrays con dos o más dimensiones en MATLAB se denominan arrays multidimensionales. Los arrays multidimensionales en MATLAB son una extensión de matrices bidimensionales comunes.
Generalmente, para generar arrays multidimensionales, primero creamos un array bidimensional y luego lo expandimos.
Por ejemplo, creemos un array bidimensional a.
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
a = 7 9 5 6 1 9 4 3 2
arrayaes3×3array; podemos agregar una tercera dimensiónuno, proporcionando valores similares-
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
a = ans(:,:,1) = 0 0 0 0 0 0 0 0 0 ans(:,:,2) = 1 2 3 4 5 6 7 8 9
También podemos crear un array bidimensional utilizando las funciones multidimensionales ones(), zeros() o rand().
Por ejemplo,
b = rand(4,3,2)
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
b(:,:,1) = 0.0344 0.7952 0.6463 0.4387 0.1869 0.7094 0.3816 0.4898 0.7547 0.7655 0.4456 0.2760 b(:,:,2) = 0.6797 0.4984 0.2238 0.6551 0.9597 0.7513 0.1626 0.3404 0.2551 0.1190 0.5853 0.5060
También podemos usarcat()función para construir un array multidimensional. Conecta una lista de arrays a lo largo de la dimensión especificada-
La sintaxis de la función cat() es-
B = cat(dim, A1, A2...)
donde,
Bes el array nuevo creado
A1,A2,... son los arrays a conectar
dimes la dimensión sobre la que se conectan los arrays
Cree un archivo de script y escriba el siguiente código-
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])
Mientras se ejecuta el archivo, muestra-
c(:,:,1) = 9 8 7 6 5 4 3 2 1 c(:,:,2) = 1 2 3 4 5 6 7 8 9 c(:,:,3) = 2 3 1 4 7 8 3 9 0
MATLAB proporciona las siguientes funciones para ordenar, rotar, reemplazar, redimensionar o desplazar el contenido de un array.
Función | Acción |
---|---|
length | Longitud del vector o la dimensión máxima del array |
ndims | Dimensión del array |
numel | Número de elementos del array |
size | Dimensión del array |
iscolumn | Determinar si la entrada es un vector de columnas |
isempty | Determinar si el array está vacío |
ismatrix | Determinar si la entrada es una matriz |
isrow | Determinar si la entrada es un vector de filas |
isscalar | Determinar si la entrada es un escalar |
isvector | Determinar si la entrada es un vector |
blkdiag | Construir una matriz de diagonal de bloques según los parámetros de entrada |
circshift | Desplazar cíclicamente el array |
ctranspose | Conjugado transversal |
diag | Matriz diagonal y diagonal de la matriz |
flipdim | Invertir el array a lo largo de la dimensión especificada |
fliplr | Invertir la matriz de izquierda a derecha |
flipud | Invertir la matriz de arriba a abajo |
ipermute | Invertir N-El número de dimensiones del array D |
permute | Reordenar N-El número de dimensiones del array D |
repmat | 复制和切片数组 |
reshape | 重塑数组 |
rot90 | 将矩阵旋转90度 |
shiftdim | 移动维度 |
issorted | 确定集合元素是否按排序顺序 |
sort | 按升序或降序对数组元素排序 |
sortrows | 按升序对行进行排序 |
squeeze | 删除单例维度 |
transpose | 转置 |
vectorize | 表达式向量化 |
以下示例说明了上面提到的一些功能。
longitud, dimensiones y cantidad de elementos-
Cree un archivo de script y escriba el siguiente código-
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % longitud del vector x y = rand(3, 4, 5, 2); ndims(y) % número de dimensiones en el array y s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab']; numel(s) % número de elementos en s
Muestre el siguiente resultado al ejecutar el archivo-
ans = 8 ans = 4 ans = 23
数组元素的循环移位
Cree un archivo de script y escriba el siguiente código-
a = [1 2 3; 4 5 6; 7 8 9] % array original a b = circshift(a,1]) % desplazamiento circular de la primera dimensión hacia abajo 1. c = circshift(a,[1 -1]) % desplazamiento circular de la primera dimensión hacia abajo 1 % y segundo valores dimensionales a la izquierda % por 1.
Muestre el siguiente resultado al ejecutar el archivo-
a = 1 2 3 4 5 6 7 8 9 b = 7 8 9 1 2 3 4 5 6 c = 8 9 7 2 3 1 5 6 4
Cree un archivo de script y escriba el siguiente código-
v = [ 23 45 12 9 5 0 19 17] % vector horizontal sort(v) % ordenamiento de v m = [2 6 4; 5 3 9; 2 0 1] % matriz bidimensional sort(m, 1) % ordenamiento de m en la fila sort(m, 2) % ordenamiento de m en la columna
Muestre el siguiente resultado al ejecutar el archivo-
v = 23 45 12 9 5 0 19 17 ans = 0 5 9 12 17 19 23 45 m = 2 6 4 5 3 9 2 0 1 ans = 2 0 1 2 3 4 5 6 9 ans = 2 4 6 3 5 9 0 1 2
单元格数组是索引单元格的数组,其中每个单元格可以存储不同维度和数据类型的数组。
cell函数用于创建单元格数组。单元格功能的语法是-
C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj)
Ces un array de celdas;
dimes un entero escalar o vector de enteros que especifica la dimensión del array de celdas C;
dim1,... ,dimNes un entero escalar de C de un solo dimensión especificado;
objEs uno de los siguientes-
Array o objeto de Java
Array de tipos .NET System.String o System.Object
Cree un archivo de script y escriba el siguiente código-
c = cell(2, 5); c = {'Rojo', 'Azul', 'Verde', 'Amarillo', 'Blanco'; 1 2 3 4 5}
Muestre el siguiente resultado al ejecutar el archivo-
c = { [1,1] = Rojo [2,1] = 1 [1,2] = Azul [2,2] = 2 [1,3] = Verde [2,3] = 3 [1,4] = Amarillo [2,4] = 4 [1,5] = Blanco [2,5] = 5 }
Hay dos métodos para referirse a los elementos de un array de celdas-
Coloque los índices entre corchetes [] para referirse a un conjunto de celdas
Coloque los índices entre llaves {} para referirse a los datos de una celda individual
Cuando coloca los índices entre los primeros paréntesis, se refiere a un conjunto de celdas.
El índice del array de celdas en los paréntesis es un conjunto de celdas.
Por ejemplo-
c = {'Rojo', 'Azul', 'Verde', 'Amarillo', 'Blanco'; 1 2 3 4 5}; c(1:2,1:2)
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
ans = { [1,1] = Rojo [2,1] = 1 [1,2] = Azul [2,2] = 2 }
También puede usar corchetes para acceder al contenido de las celdas.
Por ejemplo-
c = {'Rojo', 'Azul', 'Verde', 'Amarillo', 'Blanco'; 1 2 3 4 5}; c{1, 2:4}
MATLAB ejecutará la siguiente instrucción y devolverá el siguiente resultado-
ans = Azul ans = Verde ans = Amarillo