Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    minimo in Matlab

    dato il vettore A=[3 4 5 1 7 2]
    esiste una funzione che restituisca l'indice a cui corrispende il minimo?
    In questo caso il minimo e' 1, e io voglio che la funziona mi restituisca 4,
    ossia il numero della colonna a cui corrisponde 1.

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    117
    Dovrebbe essere possibile farlo con la semplice funzione min. Leggi bene l'help.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    min restituisce il minimo, non l'indice.
    Tieni conto che se non ricordo male hai 3 e non 4 (la colonna è la 3 se parti a contare da zero).

    Non so se esistono altre funzioni, magari prendi il minimo con min e con quello scorri l'array alla ricerca della prima occorrenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    min() può restituire anche l'indice del minimo, dovrebbe bastare scrivere qualcosa come

    [~, ind] = min(A);

    dove la tilde serve a sopprimere il primo output (che è proprio il valore minimo) che in questo caso non è di interesse.
    every day above ground is a good one

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    117
    Originariamente inviato da valia
    Tieni conto che se non ricordo male hai 3 e non 4 (la colonna è la 3 se parti a contare da zero).
    Diversamente da ciò che avviene in molti altri linguaggi, in Matlab gli indici degli array vanno da 1 a n, non da 0 a n-1.


    Originariamente inviato da YuYevon
    min() può restituire anche l'indice del minimo, dovrebbe bastare scrivere qualcosa come

    [~, ind] = min(A);

    dove la tilde serve a sopprimere il primo output (che è proprio il valore minimo) che in questo caso non è di interesse.
    Infatti proprio a questo mi riferivo, ma bisogna anche imparare a leggere l'help quando si usa un comando. Guardando qui infatti è scritto:
    min - Smallest elements in array
    Syntax

    C = min(A)
    C = min(A,B)
    C = min(A,[],dim)
    [C,I] = min(...)
    Description

    C = min(A) returns the smallest elements along different dimensions of an array.

    If A is a vector, min(A) returns the smallest element in A.

    If A is a matrix, min(A) treats the columns of A as vectors, returning a row vector containing the minimum element from each column.

    If A is a multidimensional array, min operates along the first nonsingleton dimension.

    C = min(A,B) returns an array the same size as A and B with the smallest elements taken from A or B. The dimensions of A and B must match, or they may be scalar.

    C = min(A,[],dim) returns the smallest elements along the dimension of A specified by scalar dim. For example, min(A,[],1) produces the minimum values along the first dimension of A.

    [C,I] = min(...) finds the indices of the minimum values of A, and returns them in output vector I. If there are several identical minimum values, the index of the first one found is returned.

    [...]
    Comunque anche se non uso più Matlab da un bel po' di tempo, voglio ringraziarti perché il fatto della tilde non lo sapevo, ed in passato ho più volte cercato in giro senza successo come fare a sopprimere un output. Lo terrò presente se lo dovrò riutilizzare in futuro.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Cell
    Diversamente da ciò che avviene in molti altri linguaggi, in Matlab gli indici degli array vanno da 1 a n, non da 0 a n-1.
    eh ricordavo male allora, ho usato un bel po' matlab e dopo un po avevo imparato ad usare le funzioni principali, ma mi ero completamente scordata del fatto che gli indici partono da 1 visto che un buon numero di linguaggi di programmazione/scripting parte da 0!!

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.