Extract matrix subset based on latitude and longitude
2 views (last 30 days)
Show older comments
I have a matrix of data and want to extract various subsets (0.5 degree grids) based on latitude and longitude. My file is not one that I downloaded from NASA, ect...
I have been trying to use "find" where latitude and longitude are columns 1 & 2 of the matrix "all_time":
x=all_time(:,3:15);% tem=find(all_time(:,1)<27.5 & all_time(:,1)>28.0 & all_time(:,2)<-79 & all_time(:,2)>-78.5); box1=x(tem);
I am trying to extract boxes of 0.5 by 0.5 degrees for all the variables in columns 3 to 15 of the matrix. My box1 is an empty matrix.
Thanks
0 Comments
Answers (1)
Kirby Fears
on 24 Oct 2016
Edited: Kirby Fears
on 24 Oct 2016
Janet,
These conditions are contradictory:
all_time(:,1)<27.5 & all_time(:,1)>28.0
None of your values could be below 27.5 and above 28 at the same time. I suppose you meant to flip those comparators as:
all_time(:,1)>27.5 & all_time(:,1)<28.0
Also, tem will contain the rows satisfying your longitude and latitude conditions. If you'd like to extract all columns of x corresponding to those rows, you'd index like this:
box1=x(tem,:);
Hope this helps.
2 Comments
Kirby Fears
on 24 Oct 2016
Edited: Kirby Fears
on 24 Oct 2016
Are you sure you have data in that matrix meeting all conditions? You can try removing one condition at a time to see which one is causing a problem. You might need to use a >= or <= sign.
See Also
Categories
Find more on Web Services 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!