Cancellazione elemento matrice

di il
5 risposte

Cancellazione elemento matrice

Salve, mi accaduta una cosa strana usando:


matrice(:,numero)=0;

                          
          matrice(numero,:)=0;

numero e dato da input pari a 2.

Mi dovrebbe restituire tutti zero nella 2 righe in tutte le colonne e viceversa.


e invece non accade!

5 Risposte

  • Re: Cancellazione elemento matrice

    Posta l'intero codice, anche dove crei la matrice con le dimensioni...
  • Re: Cancellazione elemento matrice

    
    
    
    case 4:
    
      if self.lista_struct(1).n_vertices>=1
                        
                         
                     vertex=input('inserisci il valore di un vertice');
    
                                  
                               
                      if conta_vertice_remove>=1
                    
                        
                        for k=1:self.lista_struct(1).n_vertices-1
    
                            
                            
                            
                       if self.lista_struct.value(k)==vertex
                           
                                     
                           
                  self.lista_struct=Graph.removeVertex(self.lista_struct,vertex);
                  
                  
                             
    
                      
               self.lista_strcut.edge(:,vertex)=0;
    
                              
               self.lista_struct.edge(vertex,:)=0;
                        
              
             
                                
               conta_vertice_remove=conta_vertice_remove-1;
    
                                 
               self.lista_struct(1).n_vertices=conta_vertice_remove;
                       end                                              
                       
                           
                        end
                        
    
    
                      end
                    
       
          
       if self.lista_struct.value(self.lista_struct(1).n_vertices)==vertex
                           
                                     
                           
         self.lista_struct=Graph.removeVertex(self.lista_struct,vertex);
                  
                  
          self.lista_struct.edge(:,vertex)=0;
    
                             
          self.lista_struct.edge(vertex,:)=0;
                           
                          
          conta_vertice_remove=conta_vertice_remove-1;
                      
        
          self.lista_struct(1).n_vertices=conta_vertice_remove;
                         
                       
                                                                                                disp(self.lista_struct.edge);
        
                       end
                                                                      
                       
    
                    end
    
    
    
    
    
    la matrice viene creata in un case da un altra function generate
    
    [code]
    case 2:
    
     [edges,n_edge]=generate.generate_edges(conta_vertice_remove,self.lista_struct);
                            
                                            
    
                   self.lista_struct.edge=edges;
                        
    
    
    nella classe generate viene creata cosi con conta vertice passato da parametro

    edges=zeros(conta_vertice,conta_vertice);
  • Re: Cancellazione elemento matrice

    La matrice viene creata correttamente come ho messo viene eliminata solo la riga-colonna e non colonna-riga non capisco il motivo
  • Re: Cancellazione elemento matrice

    signfra ha scritto:


    la matrice viene creata correttamente come ho messo viene eliminata solo la riga-colonna e non colonna-riga non capisco il motivo
    Immagino che quello che stai cercando di fare è questo:

    >> matrix = ones(5,5);
    matrix(:,2) = 0;
    matrix(2,:) = 0;
    matrix
    
    matrix =
    
         1     0     1     1     1
         0     0     0     0     0
         1     0     1     1     1
         1     0     1     1     1
         1     0     1     1     1
    [/b]

    Vedi che da qualche parte fai qualcosa di sbagliato, perché il codice per fare quello che dici è quello che ti ho postato sopra.
  • Re: Cancellazione elemento matrice

    Io ho fatto cosi nello switch case si ma se io una volta che ho una matrice edges basta come dici tu e come ho fatto io


    self.lista_strcut.edge(:,vertex)=0;


    self.lista_struct.edge(vertex,:)=0;

    invece nel secondo if funziona! e incredibile.....
Devi accedere o registrarti per scrivere nel forum
5 risposte