gridding problems in the script

1 view (last 30 days)
Vadim Tambovtsev
Vadim Tambovtsev on 27 Oct 2016
Answered: KSSV on 27 Oct 2016
Hello,
in the task I have an independent-of-grid "real size" set of good sand inside a volume. The task is to make gridding on this set, convert in to 100x50x50 grid, to 64x32x32 grid etc.
I managed to make this script, but the "good-sand" fractions differs a lot depending on the chosen grid, but it should be almost the same. Could you find an error in my script?
Thank you.
  1 Comment
KSSV
KSSV on 27 Oct 2016
A is dependent on what variables? Specifically do you have x and y values for the grid?

Sign in to comment.

Accepted Answer

KSSV
KSSV on 27 Oct 2016
You can reduce your A of size 100x50x50 to 64x32x32 using the following code:
%%do spatial inteprolation to reduce A spatially
[m,n,p] = size(A) ;
x = linspace(0,1,n) ;
y = linspace(0,1,m) ;
[X,Y] = meshgrid(x,y) ;
% Reduce A spatially
xi = linspace(0,1,32) ;
yi = linspace(0,1,64) ;
[Xi,Yi] = meshgrid(xi,yi) ;
%
Ar = zeros(64,32,p) ;
for i = 1:p
Ar(:,:,i) = interp2(X,Y,A(:,:,i),Xi,Yi) ;
end
%%Reduce thrid dimension
t = linspace(0,1,p) ;
ti = linspace(0,1,32) ;
Areduced = zeros(64,32,32) ;
for i = 1:64
for j = 1:32
Arij = squeeze(Ar(i,j,:)) ;
Areducedij = interp1(t,Arij,ti) ;
% replace values
Areduced(i,j,:) = Areducedij ;
end
end
Areduced is your A with new dimensions of 64X32X32.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!