Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> MATLAB

MATLAB: Dominando Arrays Multidimensionales y Especiales

En MATLAB, todas las variables de todos los tipos de datos son arrays multidimensionales. Un vector es un array unidimensional y una matriz es un array bidimensional.

Ya hemos tratado vectores y matrices. En este capítulo, discutiremos los arrays multidimensionales. Pero antes, analicemos algunos tipos especiales de arrays.

Arrays Especiales en MATLAB

En esta sección, veremos algunas funciones que crean arrays especiales. Para todas estas funciones, un solo argumento crea un array cuadrado, mientras que dos argumentos crean un array rectangular.

La función zeros()

Crea un array lleno de ceros.

Ejemplo:

zeros(5)

MATLAB devuelve una matriz 5x5 de ceros.

La función ones()

Crea un array lleno de unos.

Ejemplo:

ones(4,3)

MATLAB devuelve una matriz 4x3 de unos.

La función eye()

Crea una matriz identidad.

Ejemplo:

eye(4)

MATLAB devuelve una matriz identidad 4x4.

La función rand()

Crea un array con números aleatorios distribuidos uniformemente en el intervalo (0,1).

Ejemplo:

rand(3,5)

MATLAB devuelve una matriz 3x5 con valores aleatorios.

Cuadrados Mágicos

Un cuadrado mágico es una matriz cuadrada donde la suma de los elementos es la misma en cada fila, columna y diagonal principal.

La función magic() crea un cuadrado mágico. Toma un argumento escalar que indica el tamaño del cuadrado (debe ser ≥ 3).

Ejemplo:

magic(4)

MATLAB devuelve un cuadrado mágico 4x4.

Arrays Multidimensionales

Un array con más de dos dimensiones se llama array multidimensional en MATLAB. Es una extensión de la matriz bidimensional normal.

Generalmente, para generar un array multidimensional, primero creamos un array bidimensional y lo extendemos.

Ejemplo: Crear un array 3D

Primero, creamos una matriz 3x3:

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

Luego, agregamos una tercera dimensión:

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

MATLAB muestra dos "páginas": a(:,:,1) (la original) y a(:,:,2) (la nueva).

También podemos crear arrays multidimensionales directamente con zeros(), ones() o rand() especificando tres o más dimensiones:

b = rand(4,3,2)

La función cat()

Concatena arrays a lo largo de una dimensión especificada.

Sintaxis:

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

Ejemplo con cat()

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])

Crea un array 3x3x3 con tres páginas.

Funciones de Manipulación de Arrays

MATLAB proporciona numerosas funciones para ordenar, rotar, permutar, redimensionar o desplazar arrays.

FunciónPropósito
lengthLongitud de un vector o mayor dimensión
ndimsNúmero de dimensiones del array
numelNúmero total de elementos
sizeDimensiones del array
iscolumnDetermina si la entrada es un vector columna
isemptyDetermina si el array está vacío
ismatrixDetermina si la entrada es una matriz
isrowDetermina si la entrada es un vector fila
isscalarDetermina si la entrada es un escalar
isvectorDetermina si la entrada es un vector
blkdiagConstruye matriz diagonal por bloques
circshiftDesplaza array circularmente
ctransposeTranspuesta conjugada compleja
diagMatrices diagonales y diagonales de matriz
flipdimInvierte array en dimensión especificada
fliplrInvierte matriz de izquierda a derecha
flipudInvierte matriz de arriba a abajo
ipermuteInvierte permutación de dimensiones N-D
permuteReordena dimensiones de array N-D
repmatReplica y mosaica array
reshapeRedimensiona array
rot90Rota matriz 90 grados
shiftdimDesplaza dimensiones
issortedDetermina si elementos están ordenados
sortOrdena elementos ascendente/descendente
sortrowsOrdena filas ascendentemente
squeezeElimina dimensiones singleton
transposeTranspuesta
vectorizeVectoriza expresión

Ejemplos Prácticos

Longitud, Dimensiones y Número de Elementos

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 de y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s)   % número de elementos en s

Desplazamiento Circular

a = [1 2 3; 4 5 6; 7 8 9];
b = circshift(a,1);        % desplaza primera dimensión hacia abajo 1
c = circshift(a,[1 -1]);   % desplaza 1ª dim. abajo 1 y 2ª dim. izquierda 1

Ordenación de Arrays

v = [23 45 12 9 5 0 19 17];
sort(v)           % ordena vector horizontal
m = [2 6 4; 5 3 9; 2 0 1];
sort(m,1)         % ordena por filas (columna a columna)
sort(m,2)         % ordena por columnas (fila a fila)

Cell Arrays (Arrays de Celdas)

Los cell arrays son arrays indexados donde cada celda puede almacenar datos de diferentes dimensiones y tipos.

La función cell crea un cell array:

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

Ejemplo

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

Acceso a Datos en Cell Arrays

Dos formas de referenciar elementos:

Ejemplos

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)    % devuelve subconjunto de celdas (2x2)
c{1, 2:4}     % devuelve contenidos: 'Blue', 'Green', 'Yellow'

MATLAB

  1. Dominando arrays en C#: Declaración, inicialización y operaciones
  2. Dominando arrays escalonados en C#: Declaración, inicialización y acceso
  3. Arrays en C++: Declaración, inicialización y técnicas con punteros
  4. Asignación dinámica de arrays en C++: Guía práctica con ejemplos de código
  5. MATLAB: Visión General del Entorno Líder en Computación Numérica
  6. Variables en MATLAB: Conceptos Básicos y Ejemplos Prácticos
  7. Comandos Esenciales de MATLAB para Computación Eficiente
  8. Matrices en MATLAB: Creación, Referenciación y Manipulación de Datos
  9. MATLAB - Números: Tipos, Almacenamiento y Conversión
  10. Dominando Strings en MATLAB: Creación, Manipulación y Funciones
  11. Técnicas de Copia de Arrays en Java: Guía Completa