Operadores en MATLAB: Guía Completa de Aritméticos, Relacionales, Lógicos y Bitwise
Un operador es un símbolo que indica al compilador realizar manipulaciones matemáticas o lógicas específicas. MATLAB está diseñado para operar principalmente sobre matrices y arrays completos. Por tanto, los operadores funcionan tanto en datos escalares como no escalares.
MATLAB permite los siguientes tipos de operaciones elementales:
- Operadores Aritméticos
- Operadores Relacionales
- Operadores Lógicos
- Operaciones Bitwise
- Operaciones de Conjuntos (Set Operations)
Operadores Aritméticos
MATLAB distingue dos tipos de operaciones aritméticas:
- Operaciones aritméticas de matrices (álgebra lineal estándar)
- Operaciones aritméticas de arrays (elemento a elemento)
Los operadores de matriz y array se diferencian por el símbolo punto (.). Sin embargo, suma y resta son iguales para ambos, así que el operador es el mismo. Tabla de operadores:
| Nº | Operador y Descripción | |
|---|---|---|
| 1 | + Adición o más unario. |
|
| 2 | - Sustracción o menos unario. |
|
| 3 | * Multiplicación de matrices. |
|
| 4 | .* Multiplicación elemento a elemento (arrays). |
|
| 5 | / División derecha de matrices (slash). |
|
| 6 | ./ |
División derecha elemento a elemento. |
| 7 | \ División izquierda de matrices (backslash). Si A es cuadrada, |
|
| 8 | .\ División izquierda elemento a elemento. |
|
| 9 | ^ Potencia de matriz. |
|
| 10 | .^ Potencia elemento a elemento. |
|
| 11 | ' Transpuesta de matriz (conjugada para complejos). |
|
| 12 | .' Transpuesta de array (sin conjugar para complejos). |
Operadores Relacionales
Funcionan en escalares y no escalares. Para arrays, comparan elemento a elemento y devuelven array lógico del mismo tamaño (1=true, 0=false).
| Nº | Operador y Descripción |
|---|---|
| 1 | < Menor que |
| 2 | <= Menor o igual que |
| 3 | > Mayor que |
| 4 | >= Mayor o igual que |
| 5 | == Igual a |
| 6 | ~= Distinto de |
Operadores Lógicos
Dos tipos:
Elemento a elemento (Element-wise) — Operan en elementos correspondientes de arrays lógicos. Símbolos:
&(AND),|(OR),~(NOT).Cortocircuito (Short-circuit) — Operan en escalares y expresiones lógicas. Símbolos:
&&(AND),||(OR). Permiten evaluación perezosa.
Operaciones Bitwise
Operan bit a bit. Tablas de verdad para &, |, ^:
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Ejemplo: A = 60 (0011 1100), B = 13 (0000 1101):
A & B = 0000 1100 (12) A | B = 0011 1101 (61) A ^ B = 0011 0001 (49) ~A = 1100 0011 (-61 en complemento a dos)
Funciones bitwise comunes:
| Función | Propósito |
|---|---|
| bitand(a, b) | AND bit a bit de enteros a y b |
| bitcmp(a) | Complemento bit a bit de a |
| bitget(a, pos) | Obtener bit en posición pos del array entero a |
| bitor(a, b) | OR bit a bit de enteros a y b |
| bitset(a, pos) | Establecer bit en posición pos de a |
| bitshift(a, k) | Desplaza a a la izquierda k bits (equiv. ×2k). k negativo: desplazamiento derecha (÷2|k|) redondeando a -∞. Bits de desbordamiento se truncan. |
| bitxor(a, b) | XOR bit a bit de enteros a y b |
| swapbytes | Intercambia orden de bytes |
Operaciones de Conjuntos (Set Operations)
Funciones para unión, intersección, pertenencia, etc.
| Nº | Función y Descripción | |
|---|---|---|
| 1 | intersect(A,B) Intersección de dos arrays; valores comunes a ambos, ordenados. | |
| 2 | intersect(A,B,'rows') Trata cada fila como entidad; devuelve filas comunes, ordenadas. | |
| 3 | ismember(A,B) Array mismo tamaño que A con 1 donde elementos de A están en B, 0 en resto. | |
| 4 | ismember(A,B,'rows') Trata filas como entidades; vector con 1 donde filas de A están en B. | |
| 5 | issorted(A) | 1 (true) si elementos de A ordenados, 0 en otro caso. A puede ser vector o cell array de strings 1D. A ordenado si A == sort(A). |
| 6 | issorted(A, 'rows') | 1 si filas de matriz 2D A ordenadas, 0 en otro caso. A ordenado si A == sortrows(A). |
| 7 | setdiff(A,B) | Diferencia de conjuntos; valores en A que no están en B, ordenados. |
| 8 | setdiff(A,B,'rows') | Filas de A que no están en B, ordenadas. Opción 'rows' no soporta cell arrays. |
| 9 | setxor OR exclusivo de dos arrays. | |
| 10 | union Unión de dos arrays. | |
| 11 | unique Valores únicos en array. |
MATLAB
- Operadores en C# – Guía completa de operadores en C#
- Dominando los Operadores en C++: Guía Completa con Ejemplos Prácticos
- Dominando los operadores en programación C: guía completa
- Guía completa de operadores en C: Tipos, funciones y ejemplos
- MATLAB: Visión General del Entorno Líder en Computación Numérica
- Variables en MATLAB: Conceptos Básicos y Ejemplos Prácticos
- Comandos Esenciales de MATLAB para Computación Eficiente
- Tipos de Datos en MATLAB: Guía Completa de Conversión y Determinación
- Operadores en MATLAB: Guía Completa de Aritméticos, Relacionales, Lógicos y Bitwise
- Dominando operadores en Python: Guía completa
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos