Newsgroup: it.discussioni.ingegneria
Titolo: Aiuto Matlab

Salve,
  qualcuno mi può aiutare con un problema su Matlab?
Ho disegnato la mappa dell'italia con la funzione
lat_limit = [34 48];
lon_limit = [4.5 20.5];
worldmap(lat_limit, lon_limit);
adesso vorrei disegnarci sopra una spezzata. Ho trovato la funzione
geoshow(lat, lon). Vorrei sapere se qualcuno sa come posso colorare
questa linea in funzione di alcuni valori che stabilisco per ciascun
punto della linea. Mi spiego meglio: se al primo punto assegno un
valore alto la linea deve comincirae col rosso per poi cambiare colore
verso le tinte celesti verso i punti cui assegno valori più bassi (in
accordo alla colormap di default).
E' possibile impostare opportuni parametri alla funzione geoshow?
Oppure occorre utilizzare un'altra funzione?
Grazie.

   qualcuno mi può aiutare con un problema su Matlab?
[CUT]
Per una domanda così specifica forse è meglio se chiedi qui:
comp.soft-sys.matlab
ciao

leonardo...@gmail.com
 ha scritto:

Copio e incollo dalla guida in linea di geoshow
     % Display the EGM96 geoid heights.
     % Create a figure with an Eckert projection.
     figure
     axesm eckert4; framem; gridm;
     axis off
     % Display the geoid as a texture map.
     load geoid
     h=geoshow(geoid, geoidrefvec, 'DisplayType','texturemap');
     % Set the Z data to the geoid height values, rather than a
     % surface with zero elevation.
     set(h,'ZData',geoid);
     light; material(0.6*[ 1 1 1]);
     % Create a colorbar and title.
     set(gca,'dataaspectratio',[ 1 1 200]);
     hcb = colorbar('horiz');
     set(get(hcb,'Xlabel'),'String','EGM96 geoid heights in m.')
     % Mask out all the land.
     geoshow('landareas.shp', 'FaceColor', 'black');
     zdatam(handlem('patch'), max(geoid(:)));
Quindi quello che ti serve è solo definire i valori di altezza in geoid, 
mettendo a una costante bassa (o forse anche NaN) tutto ciò che non 
appartiene alla spezzata. Le ampiezze relative alle coordinate della 
spezzata saranno i valori reali di ampiezza.
Se la colormap in uso non ti va bene, o usi una map diversa (hot, cold, 
grey, hsv, etc), o usi colormap editor, oppure te la modifichi a mano (è 
una matrice Nx3 in rgb )
Perdonami se c'è qualche imprecisione ma sono al collasso mentale.
Saluti, Andrea.

 
leonardo.magis...@gmail.com
 ha scritto:

Innanzitutto grazie per l'attenzione e per la risposta!
Ho, però, qualche difficoltà nell'applicare i consigli che mi dai e
per questo approfitto ancora della tua gentilezza.
Ti posto parte del codice che ho già scritto:
lat_limit = [34 48];
lon_limit = [4.5 20.5];
h = worldmap(lat_limit, lon_limit);
set(1, 'Units', 'normalized', 'Position', [0 0 1 1]);
hTitle = get(h,'Title');
h3 = xlabel('Longitude [°]');
h4 = ylabel('Latitude [°]');
percorso = [45.6306 8.7281  120 ;
    45.679750  8.690766  533.4;
    45.718092  8.645112  914.4;
    45.789492  8.738461  1219.2;
    45.722862 8.869094  1524;
    45.496611 8.931896  2500;
    44.964444 8.970278  4500;
    44.9644 8.9703  6000;
    44.4244 9.0821  6000];
upLimit = max(percorso (:,3));
geoshow(percorso (:,1), percorso (:,2), 'LineWidth',3 );
cb = colorbar;
set(cb,'YLim', [0 upLimit]);
imagesc(cb, [0 upLimit]);
cb = colorbar;
set(cb,'XColor','white','YColor','white');
Come potrai vedere questo codice traccia una spezzata di colore nero.
Io vorrei che i colori sulla spezzata fossero assegnati in accordo ai
valori di altitudine
 dei punti indicati nella terza colonna della matrice percorso ed in
relazione, ovviamente, alla colorbar visualizzata.
Ti ringrazio,
Leonardo

leonardo...@gmail.com
 ha scritto:

Quasi risolto, ti rispondo in privato.
Ciao, Andrea.