Interpolación de array 2D en MATLAB

En este artículo, vamos a discutir la «Interpolación de array 2D» en MATLAB con la ayuda de dos funciones linspace() e interp2()

Funciones utilizadas

espaciolin( )

La función linspace() se utiliza para la generación de vectores espaciados linealmente.

Sintaxis:

espaciolineal(a, b)

espaciolineal(a, b, n)

Aquí,

linspace(a, b) se usa para devolver un vector de fila de 100 puntos espaciados uniformemente entre «a» y «b».

linspace(a, b, n) se usa para devolver un vector de fila de «n» puntos, el espacio entre los puntos es (x2-x1)/(n-1).

Parámetros: Esta función acepta tres parámetros, que se ilustran a continuación:

  • a: Este es el primer valor especificado.
  • b: Este es el segundo valor especificado.
  • n: este es el número especificado de puntos contenidos en el vector de fila generado.

Valor devuelto: Devuelve el vector de fila generado de «n» puntos espaciados linealmente entre e incluyendo «a» y «b».

Ejemplo:

Matlab

% MATLAB code for Calling the linspace()
% to generate a row vector of
% 100 evenly spaced points in
% between 0 to 10
linspace(0, 10)

Producción: 

interp2( )

La función interp2() se utiliza para interpolar datos cuadriculados en 2D en un formato de cuadrícula de malla. 

Sintaxis:

interp2(X,Y,V,Xq,Yq)

interp2(V,Xq,Yq)

interp2(V)

interp2(V,k)

interp2(___,método)

interp2(___,método,val extrap)

Aquí,

La función interp2(X, Y, V, Xq, Yq) se utiliza para devolver valores interpolados de una función específica de dos variables en puntos de consulta específicos mediante interpolación lineal. Su resultado pasa por el muestreo original de la función. Aquí, las coordenadas de los puntos de muestra residen en «X» e «Y», «V» contiene los valores de función correspondientes en cada punto de muestra, y «Xq», «Yq» contiene las coordenadas de los puntos de consulta.

La función interp2(V, Xq, Yq) es para la cuadrícula predeterminada de puntos de muestra. Estos puntos cubren la región rectangular, X=1:ny Y=1:m, donde [m,n] = tamaño(V). 

La función interp2(V) se usa para devolver los valores interpolados en una cuadrícula refinada formada al dividir el intervalo entre los valores de muestra una vez en cada dimensión.

La función interp2(V, k) se utiliza para devolver los valores interpolados en una cuadrícula refinada formada por la reducción repetida a la mitad de los intervalos k veces en cada dimensión. Esto da como resultado 2^k-1 puntos interpolados entre valores de muestra.

La función interp2(___, método) especifica una función de interpolación alternativa como ‘lineal’, ‘más cercana’, ‘cúbica’, ‘makima’ o ‘spline’. Su valor predeterminado es ‘lineal’.

La función interp2(___, method, extrapval) especifica ‘extrapval’, que es un valor escalar asignado a todas las consultas que se encuentran fuera del dominio de los puntos de muestra.

Parámetros: Esta función acepta algunos parámetros que se ilustran a continuación:

  • X: Es la primera coordenada para el punto de muestra.
  • Y: Es la segunda coordenada para el punto de muestra.
  • V: Esto se usa como tamaño (V) que es equivalente a [m, n].
  • Xq: Contiene las coordenadas de los puntos de consulta que es equivalente a X=1:n
  • Yq: Contiene las coordenadas de los puntos de consulta que es equivalente a X=1:m
  • k: Es el intervalo.
  • método: especifica una función de interpolación alternativa como ‘lineal’, ‘más cercana’, ‘cúbica’, ‘makima’ o ‘spline’. Su valor predeterminado es ‘lineal’.
  • extrapval: Es un valor escalar asignado a todas las consultas que se encuentran fuera del dominio de los puntos muestrales.

Valor devuelto: Devuelve la array bidimensional interpolada.

Ejemplo: 

Matlab

% MATLAB code for interp2()
% Specifying a 2-D grid
[X,Y] = meshgrid(-4:4);
 
% Sampling the peaks() function
V = peaks(X,Y);
[Xq,Yq] = meshgrid(-4:0.25:4);
 
% Calling the interp2() function
title('Linear Interpolation Using Finer Grid');
Vq = interp2(X,Y,V,Xq,Yq);

Producción:

Interpolación de array 2D

Ejemplo 1: 

Matlab

% MATLAB code for linespace() to generate
% row vectors of 4 points
% Initializing a 2d array of dimensions 3*3
A=[1 2 3
   4 5 6
   7 8 9];
    
% Calling the linspace() function to
% generate the row vectors of 4 points
% in between and including 1 to 2
x = linspace(1, 2, 4);
 
% Calling the interp2() function for
% interpolation of above specified 2d array
result = interp2(A, x(:), x)

Producción: 

Ejemplo 2: 

Matlab

% MATLAB code for linespace() and interp2()
% Initializing a 2d array of dimensions 4*4
A=[0.69    1.76    0.089    2.0012;
   5.89    1.25    0.47     0.55;
   1.06    1.25    1.134    4.163;
   2       1.7     0        2.4];
    
% Calling the linspace() function to
% generate the row vectors of 7 points
% in between and including 1 to 3
x = linspace(1, 3, 7);
 
% Calling the interp2() function for
% interpolation of above specified 2d array
result = interp2(A, x(:), x)

Producción: 

Publicación traducida automáticamente

Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *