MATLAB Answers

Extract matrix subset based on latitude and longitude

7 views (last 30 days)
Janet Reimer
Janet Reimer on 24 Oct 2016
Edited: Kirby Fears on 24 Oct 2016
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

Sign in to comment.

Answers (1)

Kirby Fears
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

Janet Reimer
Janet Reimer on 24 Oct 2016
Yes, thank you, I had inadvertently flipped the signs, but "box1" is still empty.
Kirby Fears
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.

Sign in to comment.