Herramientas de usuario

Herramientas del sitio


math_langs:matlab

¡Esta es una revisión vieja del documento!


MATLAB

Pequeñas pinceladas

  • El lenguaje que utiliza se denomina M.
  • Podemos introducir varios comandos en una línea, estos podrían estar separados (y finalizados) por ';' , en ese caso no mostrará los cálculos realizados por pantalla. Podemos separarlos por ',', entonces sí que los mostrará.
  • clear borrará todas la memoria y cálculos realizados hasta ese momento. clear a borrará el valor de la variable a.
  • home pondrá el cursor al inicio de la línea de comandos y clc la limpiará.
  • Cuando se realiza una operación el resultado se guarda (sobreescribe) una variable llamada ans.
  • pause(x) hace que matlab se detenga por x segundos.
  • Pedir entrada al usuario por teclado, con la función input(' ').

Funciones básicas

  • help funcion: Muestra la ayuda para dicha fucnción: help solve.
  • solve: Soluciona una ecuación: solve ('x + 3 = 55', 'x'), retornará 52.

Entorno

Control de flujo

Bucle for

for t = 0:10
 
end

Condicionales

if t > 1.0
   Vapp = 1;
end

Operaciones con...

Arrays\Vectores

  • Generar un vector automáticamente:
x = 0:10 % de 0 a 10 de 1 en 1
x = 0.0:0.01:1.0 % de 0 a 1.0 de 0.01 en 0.01

Matrices

Definir...

  • Una matriz de 3×3:
a = [ 1 4 7 ; 2 5 8 ; 3 6 9 ]
a =
     1     4     7
     2     5     8
     3     6     9

Operaciones

  • Si en A tenemos una matriz podemos hacer su traspuesta haciendo: A'.

Acceso a...

matriz(4, 2)  % Fila 4, columna 2
matriz(2,:)   % Fila 2
matriz(:,3)   % Columna 3
matrix(2,1:2) % Fila 2, columnas 1 a 2
matrix(:,1:3) % Las tres primeras columnas

Dibujar

Funciones básicas de dibujo

  • clf: borra el dibujo actual.
  • hold on: hace que todo lo que se dibuje a partir de ahora sea sobre el mismo dibujo.

GUIS & GUIDE

Funciones

  • uiputfile: Muestra un diálogo para guardar ficheros.

Como...

  • Dibujar sobre varios axe. Pongamos que tenemos uno con tag axe1 y otro con tag axe2 pues antes de dibujar, por ejemplo sobre axe1, haremos axes(handles.axe1);.
  • Si vamos a utilizar variables globales las tendremos que declarar al principio de la función como global.
  • Encontrar la distancia euclídea entre dos puntos:
a = [2 3]
b = [4 8] 
d = pdist([a;b], 'euclidean')

Librerías

Image Processing

Funciones

Funciones sobre archivos:

  • imread(path): lee una imágen.
  • imfinfo(path): muestra información de un archivo de imágen.
  • imwrite (I, path): guarda I en la ruta path.


Muestra información:

  • imshow(I): muestra la imágen I. Podemos mostrar varias imágenes a la vez: imshow([image1,K, L]); Un ; la mostraría en la siguiente línea.
  • imhist(I): muestra el histograma de I.
  • size(I): recoge el tamaño de I.
[w h] = size(K);


Edición:

  • rgb2gray(I): pasa una imágen I a 8 bits.
  • im2bw(I, num): aplica un threshold (num de 0 a 1) a la imágen I.
  • histeq(I): Ecualiza el histograma de la imágen.
  • imcrop(I, [x1 y1 x2 y2]): Hace un crop de la imágen.
  • strel crea un elemento morfológico, acepta una cadena que define el elemento y los parámetros para este. El elemento puede square (acepta un valor), line (acepta 2 valores: la longitud y el ángulo), disk (acepta un valor, el radio) y ball (acepta el radio y la altura).
  • imdilate dilata un borde según un elemento morfológico.
se = strel('disk',5);
image1 = imdilate(image1, se);
  • imfill: rellena una imágen hueca.
image1 = imfill(image1,'hole');


Algoritmos

  • edge (I, algoritmo): Detección de bordes por un algoritmo concreto, acepta: canny, sobel, prewitt, log, roberts, zerocross. A canny puedes indicarle el threshold para el corte en forma de vector de dos posiciones (donde la primera es el valor mínimo, y la segunda el máximo) o un escalar (el valor máximo).
I1 = edge(I0, 'sobel');
image1 = edge(image0, 'canny', .2);


Notas:

  • figure, imshow(I): abrirá una nueva ventana para mostrar imágenes y en ella mostrará la imágen I.

Notas

math_langs/matlab.1302080829.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)