select data from specific range
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    joo tan
 el 25 de Dic. de 2011
  
    
    
    
    
    Comentada: Mitson Monteiro
 el 6 de Dic. de 2013
            Dear all,
My file have 3 column and more than hundred line..First column represent latitude, second longitude and lastly sea level. My plan is to average the sea level data based on specific range of latitude and longitude..I try design the program but still not work..Let say my file name is 200012.txt and i try to extract sea level data in range of (2<lat<3) & (95<lon<97)..But still not success. Help me
f=load('200012.txt'); lat=f(:,1); lon=f(:,2); sla=f(:,3);
x=sla(find((2<lat<3) & (95<lon<97)))
1 comentario
Respuesta aceptada
  Chandra Kurniawan
      
 el 25 de Dic. de 2011
        Hello,
I have a text file formated :
1         90        100
1         96        101
1         95        102
2         91        103
2         96        104
1         89        105
3         87        106
3         96        107
2         90        108
4         97        109
2         76        110
And Here the script :
clear; clc;
f = load('200012.txt');
lat = f(:,1); 
lon = f(:,2); 
sla = f(:,3);
%x = sla(find((2<lat<3) & (95<lon<97)))
r = sla(find(lat >=2 & lat <= 3 & lon >=95 & lon <= 97))
The Result :
r =
     104
     107
7 comentarios
  Chandra Kurniawan
      
 el 25 de Dic. de 2011
				No, I think you can't do that.
i = 2 : 0.25 : 15; %size 1x53
j = 95 : 0.25 : 126; %size 1x125
Coz, the size of i and j must be same. 
  Mitson Monteiro
 el 6 de Dic. de 2013
				suppose if i want the answer as r = 2 96 104 3 96 107 what will it be
Más respuestas (4)
  Chandra Kurniawan
      
 el 25 de Dic. de 2011
        If size of i and j are same, then
f = load('200012.txt');
lat = f(:,1); 
lon = f(:,2); 
sla = f(:,3);
i = 2 : 0.25 : 15;
j = 95 : 0.25 : 126;
for x = 1 : numel(i)-1
    r  = sla(find(lat >=i(x) & lat <= i(x+1) & lon >= j(x) & lon <= j(x+1)))
    b = mean(r)
end
This code I just use x = 1 : 53
  Image Analyst
      
      
 el 25 de Dic. de 2011
        Try something like this (I didn't test it):
rowsToAverage = lat>2 & lat<3 & lon>95 & lon<97;
meanValue = mean(sla(rowsToAverage));
Ver también
Categorías
				Más información sobre Geographic Plots en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



