Bonjour,
je dispose d'une matrice 200*3600 que j'affiche grace à surf.
Je souhaiterais changer les abscisses et ordonnées en 0:15 min et 45:860.
Pour l'ordonnée, je fais un simple linspace:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
axe_ordonne=linspace(860,45,200);
Par contre, pour les absicsses, cela se complique, vu que l'axe doit etre temporel et non linéaire. Je traduis alors le debut de ma matrice, ici 0 min, et la fin, ici 15 min, grace à "Datenum".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 x{i}=linspace(axe_abscisse_mod2{i}(1), axe_abscisse_mod2{i}(length(axe_abscisse_mod2{i})), 3600);
Je verifie que les minutes sont les bonne grace à datestr(x{i}), ce qui est le cas.

Je fais alors un meshgrid:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 [X{i},Y{i}] = meshgrid(x{i},axe_ordonne);
et je surf:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
surf(X{i},Y{i}, Matrix{i});
view(0,90)
shading interp
J'affiche ensuite les points qui m'interessent, ici, toute les minutes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
set(gca, 'XTick', x{i}(1:241:end));  %Conserve la valeur numerique de chaque minutes ( en "datenum")
datetick('x', 'HH:MM PM', 'keepticks') ; %traduit les "datenum" en horaires normales"
Mon probleme: la matrice ne s'affiche pas! Les axes sont bons, mais la matrice n'apparait pas...

Si vous avez une idée de la maniere de corriger le probleme, ce serait avec plaisir!
Ou une autre méthode pour modifier l'axe des abscisse sur un Surf...

Merci