Selezione vettori

di il
5 risposte

Selezione vettori

Salve,come è possibile(dopo aver creato un vettore) scegliere solo i numeri pari o dispari? ho provato ad utilizzare il resto ma poi?

5 Risposte

  • Re: Selezione vettori

    L'approccio basato sul "resto" sembra buono, qual è il problema specifico?
    Dovresti pubblicare il codice che hai scritto e spiegare quale sia il problema in modo che ti si possa aiutare.

    Cosa intendi con scegliere solo i numeri pari o dispari??
    Vuoi creare due vettori con, rispettivamente, i numeri pari e quelli dispari?
    Vuoi identificare l'indice posizione dei valori pari e dispari all'interno del vettore in input?

    Cosa intendi con ho provato ad utilizzare il resto ma poi??
    Ottieni un messaggio di errore?
    Hai provato ad usare la funzione "mod" ?
  • Re: Selezione vettori

    Dovrei creare due nuovi vettori con i numeri pari e dispari...con la funzione rem ottengo,appunto,i resti,in tal modo controllo la parità o meno ma poi come seleziono effettivamente quali numeri del vettore sono pari?
  • Re: Selezione vettori

    Hai letto la documentazione relativa alla funzione "rem"?

    La funzione ritorna il resto della divisione tra i due numeri (o vettori) in input.
    Se usi come primo parametro il vettore con i numeri e come secondo il valore "2" otterrai in output un vettore di "0" e "1" in corrispondenza, rispettivamente, dei numeri pari e dispari, presenti nel vettore.
    Se converti questi vettori da "double" a "logical" (con la funzione "logical"), puoi usarlo per estrarre direttamente i valori pari e dispari:

    Una possibile implementazione, che sfrutti anche le proprietà di indexing di MatLab (che, molto spesso consentono di evitare la scrittura di "cicli for") potrebbe essere:
    
    % Creazione di un vettore di esempio
    v=randi(33,1,10)
    % Estreazione dei numeri pari
    numeri_pari_rem=v(~logical(rem(v,2)))
    % Estreazione dei numeri dispari
    numeri_dispari_rem=v(logical(rem(v,2)))
    
    che produce, ad esempio (il risultato cambia in base ai valori random del vettore "v")
    
    v =
    
        28     9    27     9    31    12     7     9    21    16
    
    numeri_pari_rem =
    
        28    12    16
    
    numeri_dispari_rem =
    
         9    27     9    31     7     9    21
    
    Per qualche dettaglio sulle proprietà di indexing:
    https://it.mathworks.com/help/matlab/learn_matlab/array-indexing.html
    https://it.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html
    https://it.mathworks.com/help/matlab/math/matrix-indexing.html
  • Re: Selezione vettori

    Ti ringrazio!!!!!!!!!
  • Re: Selezione vettori

    Ho aggiornato il codice nella risposta precedente: nella descrizione della soluzione ho citato la funzione "rem", ma, poi, nel codice ho usato la funzione "mod".

    Ora nel codice viene usata la funzione "rem".

    Per lo scopo di quanto richiesto nella domanda (selezione dei numeri pari e dispari), possono essere usate entrambe le funzioni.
Devi accedere o registrarti per scrivere nel forum
5 risposte