Interpolation of layers to obtain a layer in the orthogonal plan
2 views (last 30 days)
Show older comments
Ricardo Duarte on 21 Sep 2021
Commented: Ricardo Duarte on 23 Sep 2021
I have three variables S1, S2 and S3 with the size (1000x1000) all that represent the sound levels in three different layers at three different depths. Now, I want to use those layers to calculate the sound levels in an orthogonal plan (kind of perpendicular cut of those layers), by using the interpolation of those three layers (see the figure below).
What and how can I do that?
Thank you all in advance.
Adam Danz on 22 Sep 2021
Edited: Adam Danz on 22 Sep 2021
data1 = load('S1.mat');
data2 = load('S2.mat');
data3 = load('S3.mat');
depths = [1 5 10];
Concatenate layers to 3D array
layers = cat(3, data1.Layer1_1m_, data2.Layer2_5m_, data3.Layer3_10m_);
Select a slice along the x axis. The select the a YZ plane at x=5
xIdx = 5; % x-slice
yzSlice = squeeze(layers(xIdx, :, :)); % yz plane at x=xIdx
newZ = min(depths) : max(depths); % interpolated z values
sliceInterp = interp1(depths, yzSlice', newZ)'; % interplated plane
Plot results. Circles and lines (-o) are the raw data. Dots are the interpolation.
plot(depths, yzSlice', 's-')
set(gca, 'ColorOrderIndex', 1) % reset color order to match
plot(newZ, sliceInterp', '.')
More Answers (0)
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!