English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Arreglos de MATLAB

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.

Arrays especiales en MATLAB

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

Arrays multidimensionales

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

Ejemplo

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

Funciones de array

MATLAB proporciona las siguientes funciones para ordenar, rotar, reemplazar, redimensionar o desplazar el contenido de un array.

FunciónAcción
length

Longitud del vector o la dimensión máxima del array

ndimsDimensión del array
numelNúmero de elementos del array
sizeDimensión del array
iscolumn

Determinar si la entrada es un vector de columnas

isemptyDeterminar si el array está vacío
ismatrix

Determinar si la entrada es una matriz

isrowDeterminar si la entrada es un vector de filas
isscalarDeterminar si la entrada es un escalar
isvectorDeterminar si la entrada es un vector
blkdiag

Construir una matriz de diagonal de bloques según los parámetros de entrada

circshiftDesplazar cíclicamente el array
ctransposeConjugado transversal
diagMatriz diagonal y diagonal de la matriz
flipdim

Invertir el array a lo largo de la dimensión especificada

fliplrInvertir la matriz de izquierda a derecha
flipudInvertir 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表达式向量化

Ejemplo

以下示例说明了上面提到的一些功能。

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)

Descripción

  • 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

Ejemplo

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
}

Acceder a los datos del array de celdas

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