Keep matrix structure after indexing

4 views (last 30 days)
Hello,
I have a matrix temp with dimensions 609x881 and my logical index A with the same 609x881 dimension.
When I extract the temp value based on my index using this code
temp_idx = temp(A);
my result is the vector temp_idx with dimension 230x1.
Now, since my final goal is to produce a spatial plot if this data, how can I extract the temp value based on my index so that my final matrix temp_idx has the dimension 609x881 so that I have my temperature values where the index match and NaN's outside the index.
Hope the question is clear.
Please find attach .mat file of my variables
THANK YOU :)

Accepted Answer

Stephen23
Stephen23 on 13 Sep 2023
Edited: Stephen23 on 13 Sep 2023
out = nan(size(temp));
out(A) = temp(A);
Or
out = temp;
out(~A) = NaN;
  8 Comments
Stephen23
Stephen23 on 14 Sep 2023
I will assume that pt_spatial_lev20 has size 609x881x372, and A has size 609x881x1.
out = pt_spatial_lev20;
idx = repmat(A,1,1,size(out,3));
out(~idx) = NaN;

Sign in to comment.

More Answers (0)

Categories

Find more on Resizing and Reshaping Matrices 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!