Bonjour
je possède une matrice 3d (data.Mat : nom de la matrice) qui contient des données selon trois axes x, y et z. À chaque fois j'affiche une image des trois plans c'est-à-dire si je veux l'image dans le plan (XZ) (nom de la matrice dans le plan (XZ) data.yMat ) je fixe une valeur pour la position Y dans la variable data.yPos et j’extraie la sous matrice data.Ymat du data.Mat en précisant bien sur les dimensions.
Maintenant supposons que la valeur data.yPos est récupérée à partir d'un clic sur un slider et je veux que les pixels de la position data.yPos s'affichent dans l'image du plan (YZ) (data.xMat: nom de la matrice dans le plan (YZ)) avec une autre couleur (120)
Voici le code, il marche pour un clic et ne marche pas pour le clic suivant je ne sais pas pourquoi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function YSlider_callback(obj,event)
        global handles data;
 
        data.yPos = round(get(handles.YSlider,'Value'));
        set(handles.YValue,'String', num2str(data.yPos));
 
 
        data.yMat  = squeeze(data.Mat(:,data.yPos,:))';
 
 
        handles.Ysub = subplot('position',[0.05 0.56 0.4 0.4]);
 
 
        handles.yMat = imagesc([0,data.xdim], [0,data.zdim], data.yMat, data.intensityScale);
 
        set(handles.Yaxes, 'Ydir', 'Normal',...
                                'YColor',[1 1 1],'XColor',[1 1 1])    
        daspect([1 1 1]);    xlabel('X'),	ylabel('Z')	
 
 
 
     data.xMat  = squeeze(data.Mat(data.xPos,:,:));
     data.xMat(data.yPos , :)= 120;
         handles.Xsub = subplot('position',[0.05 0.06 0.4 0.4]);
        handles.XMat = imagesc([0,data.zdim], [0,data.ydim], data.xMat, data.intensityScale);
 
        set(handles.Xaxes, 'Ydir', 'Normal',...
                                'YColor',[1 1 1],'XColor',[1 1 1])    
        daspect([1 1 0.6]);    xlabel('Z'),	ylabel('Y')	
 
    end
Merci.