Interpolation of a matrix in 2D for complex numbers
    11 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
Hello
I have a 3D matrix of a field E_x_y_t. say it's 600 x 700 x 2048   (correlated to x y and t)
At some point I'm deleting part of the Field in x and y. No need to touch T:
E_x_y_t([1:length(x)/4, length(x)/4+length(x)/2+1:length(x)],:,:) = [];
E_x_y_t(:,[1:length(y)/4, length(y)/4+length(y)/2+1:length(y)],:) = [];
x = [x(length(x)/4+1:length(x)/4+length(x)/2)];
 But what I really need is from this point to make X and Y again 600 x 700 on all the T. (make interpolation of the complex 2d field for each value of time (T) to smaller grid for better resolution).
How can I do it? using interp2 somehow i guess?
0 comentarios
Respuestas (2)
  KSSV
      
      
 el 25 de Mayo de 2023
        Let A be your complex matrix: 
B = imresize(A,2) ; % this makes double the size of A, you can specify the dimensions also 
[m,n,p] = size(A) ; 
[X,Y] = meshgrid(1:n,1:m) ;
[Xi,Yi] = meshgrid(linspace(1,n,100),linspace(1,m,100)) ;    % give your desired numbers instead of 100
Br = zeros(100,100,p) ;
Bc = zeros(100,100,p) ; 
for i = 1:p
    Br(:,:,i) = interp2(X,Y,real(A(:,:,i)),Xi,Yi) ; 
    Bc(:,:,i) = interp2(X,Y,imag(A(:,:,i)),Xi,Yi) ; 
end
B = Br+1i*Bc ; 
4 comentarios
Ver también
Categorías
				Más información sobre Interpolation en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

