Matlab, How to retrieve subset of data from a Matrix which satisfy a specific condition -


so i'm trying data processing in matlab, i'm having issues filtering out data need.

so data have in format.

data1 = [time1, time2, time3, time4, time5, time...] data2 = [d1, d2, d3, d4, d5, d....] data3 = [latitude1, latitude2, latitude3, latitude4, latitude5, latitude....] data4 = [longitude1, longitude2, longitude3, longitude4, longitude5, longitude...] 

whereas data in each column related. , each row has same number of elements.

what want filter out data not fit within latitude , longitude.

so thoughts turn these matrix,

matrix1 =[data1;data2;data3;data4]  

giving like:

[ time1, time2, time3, ...] | d1,    d2,    d3,    ...| | lat1,  lat2,  lat3,  ...| [ lng1,  lng2,  lng3,  ...] 

and write delete column if element in data3 , data4 don't meet condition of being within lat/lng boundary.

pseudo-code ie:

if(!data3.entry.isinrange(latrng1,latrng2) || !data4.entry.isinrange(lngrng1,lngrng2)){ deletecurrentcolumn; } 

so example if lat2 or lng2 out of bounds matrix transformed into:

[ time1, time3, ...] | d1,    d3,    ...| | lat1,  lat3,  ...| [ lng1,  lng3,  ...] 

how go making similar above pseudocode work in matlab? end goal organize/filter matrix location bounds.

any appreciated! thanks!

you create logical array of columns meet of criteria:

inrange = (data3 >= latrng1) & (data3 <= latrng2) &...           (data4 >= lngrgn1) & (data4 <= lngrng2); 

then use column index matrix1:

filteredmatrix = matrix1(:, inrange); 

Comments