Guía práctica

MATLAB para usuarios de Python

El lenguaje de MATLAB está diseñado principalmente para computación científica con un uso intensivo de matemáticas. MATLAB combina un entorno de escritorio perfeccionado para el análisis interactivo con un lenguaje de programación que expresa las matemáticas de matrices y arrays directamente. Comprender la filosofía y el diseño de API puede ayudar durante el aprendizaje de MATLAB.

Optimice Python con MATLAB

Integre herramientas avanzadas de MATLAB directamente en flujos de trabajo de Python.

Sintaxis de Python Sintaxis de MATLAB Propósito Ejemplos de MATLAB
# %

Comentario

% hello
print No terminar con ;

Imprimir salida

x
/ ...

Continuar en la siguiente línea

x = 1+...2;
os !

Comando del sistema operativo

! echo hi
+ - * / + - * /

Operadores matemáticos

x = 1+2
** ^

Exponente

x = y^2
* / ** .* ./ .^

Operadores por elemento

x = [1 2].* [3 4]
not, and, or ~ & |

Operadores lógicos NOT, AND, OR

if x<2 & x>2
del clear

Borrar una variable de la memoria

clear x y
clear clc

Borrar la ventana de comandos

clc
Sintaxis de MATLAB Propósito Ejemplo
( )

Indexar (copiar al escribir)

x(1,1)
[ ]

Crear un array

x = [1 2 3]

Unir arrays

z = [x ; y]
{ }

Crear arrays de celda

x = {42; "hello world"}

Extraer contenido de un contenedor

x{1,1}
.

Acceder a propiedades y métodos de una clase

obj.Data

Referenciar un campo de tabla o estructura

t.FieldName
  • El primer elemento tiene índice 1.
  • La indexación incluye el extremo izquierdo y el derecho.
  • Las opciones de indexación incluyen indexación N-D por fila y columna, indexación lineal por número de elemento e indexación lógica mediante instrucción condicional.
Crear funciones

Puede declarar funciones en un archivo de funciones. Los argumentos de entrada se indican entre paréntesis.

function z = foo(x,y)
   ...
end

Las salidas múltiples se indican con corchetes.

function [a,b] = foo(x,y)
    ...
end

Llamar a funciones con argumentos de entrada y pares nombre-valor

  y = foo(x,y,"Name",Value)

Tipos de datos similares:

Python MATLAB
float double, single
complex complex single, complex double
int (u)int8, (u)int16, (u)int32, (u)int64
float(nan) NaN
float(inf) inf
str str, char
bool logical
dict struct
list, tuple cell
pandas.dataframe table

De manera predeterminada, MATLAB almacena todos los valores numéricos como números de punto flotante de doble precisión. Python almacena algunos números como enteros y otros como números de punto flotante. En MATLAB, for x=4 y y=4.0, x es siempre igual a y.

Instrucción Ejemplo

for

for i = 1:10
   ...
end

if

if x<
   ...
   elseif x == 2    
   else
   ...
end

while

while x<3
   ...
end

switch-case

switch switch_arg
   ...
   case case_arg
   ...
end

try-catch

try
   ...
   catch
   ...
end
Definir una clase Usar una clase
classdef MyClass
   properties
      MyProp
   end
   methods
      function obj = MyClass(val)
      end
      function y = MyMethod(obj,x)
      end
   end
end
  • Guardar la definición de clase con el mismo nombre que la clase

    MyClass.m
  • Crear un objeto de la clase

    a = MyClass
  • Acceder a las propiedades

    a.MyProp
  • Llamar a métodos para realizar operaciones

    b = MyMethod(a,val)
  • Para pasar por referencia, crear una clase “handle”

    classdef myclass < handle
       ...
    end