Extract matrix subset based on latitude and longitude
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
Kirby Fears
le 24 Oct 2016
Modifié(e) : Kirby Fears
le 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 commentaires
Kirby Fears
le 24 Oct 2016
Modifié(e) : Kirby Fears
le 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.
Voir également
Catégories
En savoir plus sur Web Services dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!