2012-04-24 70 views

risposta

42

penso che possa essere semplice come

if all(v == v(1)) 

Un altro metodo sarebbe

if range(v) == 0 
+2

Cosa c'è di sbagliato con 'isequal (A, B)'? –

+6

@reve_etrange: perché non hai capito bene la domanda. test isequal per vedere se DUE array sono identici. Si prega di rileggere la domanda come richiesto. Chiede se tutti gli elementi di un array SINGLE sono uguali tra loro. –

+2

Right you are ... –

5

Un'altra soluzione:

numel(unique(v))==1 
+3

'unique' è abbastanza lento. –

+0

@BenVoigt, hai ragione, dopotutto, usa l'ordinamento. –

+1

+1: questa risposta funziona anche su un vuoto v. – Alex

2

Un'altra soluzione:

sum(abs(diff(v))) == 0 
2

Che ne dite: max(v) == min(v)? :-)

+0

Funzionerebbe, ma mi aspetto che sia più lento della soluzione accettata. – m7913d

+1

@ m7913d L'ho controllato. Questa risposta è veloce come quella in alto. – Trilarion

Problemi correlati