Bonjour,
je vous ecris car étant tout nouveau utilisateur de matalb, je desespere et j'ai besoin d'un regard exterieur sur une fonction que je programme. L'idée étant, j'ai des données (1 000 000), et j'ai besoin en tapant pour une tranche d'année (ex de 1990 à 1995), une superposition de toutes les trajectoires des bouées qui ont fait les relevés. Alors, là où je ne comprend pas c'est que ca tourne nickel sauf quand je mets le tout en fonction. Voila ce que j'ai ecrit:
function[ ]=choiceyear()
n=50000; (nbre de données)
for l=1990:1:1998 (tranche d'année)
A=rand(n,12); (matrice dans laquelle je vais stocker tous les
identificatifs de lignes i, i est la seule façon
d'ordonner ttes mes données)
for h=1:1:12 (nbre de mois)
nb=1;
for i=1:1:n
if month(i)==h && year(i)==l
A(nb,j)=i;
nb=nb+1;
end
end (mon probleme surgit ici, il semblerait apres
quelques tests, b reste tjs a 1, a croire qu'il ne
rentre pas dans la boucle if, alors que tester
hors fonction, ça passe)
if b==1 (ainsi il reste que dans cette boucle)
load hawaii_coastline.mat
longcoast=coastline(:,1)-360;
figure
plot(longcoast(),coastline(:,2 ),'k-','LineWidth',1)
axis([long,lond,latb,lath])
grid
xlabel('Longitude')
ylabel('Latitude')
title(['Drifting Buoys in ',num2str(l), 'month number ',num2str(h)]) (ici j'ai opéré le changement, voir fin du
message pour comprendre)
else
latb=[ ];
lonb=[ ];
for k=1:1:nb-1
latb=[latb;lat(A(k,h))];
lonb=[lonb;lon(A(k,h))];
end
load hawaii_coastline.mat
lon3=coastline(:,1)-360;
figure
plot(lon3(),coastline(:,2),'k-','LineWidth',1)
axis([-170,-150,16,26])
hold on;
plot(lonb,latb,'b+')
grid
xlabel('Longitude')
ylabel('Latitude')
title(['Drifting Buoys in ',num2str(l), 'month number ',num2str(h)])
end
end
end
Donc en gros, il m'affiche chaque figure de tous les mois mais sans un seul point dedans, mais je suis sur qu'il reste dans la boucle b==1 pour la simple raison que j'ai testé en changeant le titre de la figure uniquement dans cette boucle "drifting buoys blabla". Merci pour un regard exterieur et pour le temps que je vous y passerai.
-----