How can i interpolate values to create image with desired number of pixels

1 view (last 30 days)
I have log_env matrix which is 1407x50 set of data that i can display as an image. I want to interpolate data and result to be 512x512 pixels image. I try to achive that using interp2 as below. However what I'm getting is NaN through almost entire result matrix. Is there a problem with my approach or something must be wrong with data i try to interpolate?
[n,m]=size(log_env);
X=linspace(1,n,512);
Y=linspace(1,m,512);
[Xq,Yq]=meshgrid(X,Y);
new_env=interp2(log_env,Xq,Yq);

Accepted Answer

Voss
Voss on 12 Nov 2023
You've got m and n swapped in the definitions of X and Y.
[n,m]=size(log_env);
X=linspace(1,m,512);
Y=linspace(1,n,512);
[Xq,Yq]=meshgrid(X,Y);
new_env=interp2(log_env,Xq,Yq);

More Answers (0)

Categories

Find more on Interpolation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!