2015-08-19 13 views
14

Ho scritto un semplice script in Octave. Quando lo eseguo dalla riga di comando, Octave stampa una riga ogni volta che a una variabile viene assegnato un nuovo valore. Come lo sopprimo?sopprime la stampa di ogni incarico

MWE:

function result = stuff() 
    result = 0 
    for i=0:10, 
     j += i 
    end 
end 

quando l'eseguo:

octave:17> stuff() 
result = 0 
result = 0 
result = 1 
result = 3 
result = 6 
result = 10 
result = 15 
result = 21 
result = 28 
result = 36 
result = 45 
result = 55 
ans = 55 
octave:18> 

voglio sbarazzarsi delle result = ... linee. Sono nuovo ad Octave, quindi per favore perdonami facendo una domanda così fondamentale.

+1

Come già detto, terminare le righe con un ';' sopprimerà l'output sul terminale. Inoltre non è necessario il ',' dopo la riga 'for'. Infine, anche se 'j + = i;' è valido Octave, non è valido Matlab. Ti suggerirei di cambiarlo in 'j = j + i' in modo che se il tuo codice dovesse mai essere portato su Matlab, non dovrai apportare alcuna modifica. – Dan

risposta

19

aggiungendo un punto e virgola alla fine dell'istruzione, sopprimerà il risultato intermedio.

Nel tuo caso:

function result = stuff() 
    result = 0; 
    for i=0:10, 
     j += i; 
    end 
end 

farà il trucco.

5

Come nel MATLAB basta aggiungere un; (punto e virgola) fino alla fine di una riga che non si desidera inviare al terminale.

Problemi correlati