Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    81

    [MATLAB] Estrazione righe da matrice

    Buonasera a tutti, ho un semplice problema in Matlab. Vorrei estrarre da una matrice iniziale solo la prima e la terza riga, ma se eseguo il codice seguente:
    codice:
    A=[1 1 1; 2 2 2;3 3 3; 4 4 4] 
    
    for i=1:2:4    
         for j=1:3         
            D(i,j)=A(i,j)   
      end 
    end
    Mi restituisce :

    D =
    1 1 1
    0 0 0
    3 3 3

    La seconda riga non dovrebbe essere presente. Quale può essere il problema?? Grazia.

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Perchè stai scavalcando una riga, e MATLAB sostituisce le righe non inizializzate con tutti zeri.
    Perchè quando dichiari:
    codice:
    D(i,j)=A(i,j)
    Tieni presente che alla seconda iterazione i vale 3, stai inizializzando la terza riga di D,non avendo ancora inizializzato la seconda, quindi la matrice diventa una 3x3 e la seconda riga viene messa uguale a zero.

    Puoi scrivere invece:
    codice:
    k=1;
    for i=1:2:4
        for j=1:3
            D(k,j)=A(i,j);
        end;
        k=k+1;
    end;

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    81
    Grazie della risposta, ma eseguendo il codice che mi hai suggerito stampa la seguente matrice:

    D =
    1 1 1
    3 3 3
    3 3 3

    mentre il risultato corretto sarebbe

    D =
    1 1 1
    3 3 3

    Quale può essere il problema?

  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Sei sicuro ? Perché' a me stampa
    D=
    1 1 1
    3 3 3
    Prova a riscriverlo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    81
    Bastava riavviare matlab!!! Grazie funziona !!!

  6. #6
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Oppure potevi fare:
    codice:
    clear D
    Questo perche la matrice D era già riempita.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.