2010-10-05 16 views
16

Questa è una delle cose che mi ha sempre infastidito su Matlab. Capisco perché gli array iniziano a 1 e non a 0 come in nessun altro linguaggio di programmazione, ma perché lo è !=~= in Matlab?Perché non è uguale rappresentato da ~ = in Matlab?

+4

Perché il cielo è rappresentato da rosso su Marte? Perché è Marte e non la Terra. – nilamo

+0

Si consiglia di scrivere "come nella maggior parte degli altri linguaggi di programmazione". Un altro linguaggio che inizia a indicizzare 1 che mi viene in mente è LUA. – Jonas

+0

È interessante notare che Octave, che è il clone open source di Matlab, accetta! = (Oltre a ~ =), oltre a! X (oltre a ~ x). –

risposta

17

Il carattere di tilde (~) viene generalmente utilizzato come operatore NOT bit a bit.
Come il! il carattere è riservato per un altro utilizzo (comando OS), immagino che non sia una cattiva scelta.

10

In logica matematica ~ è un modo antiquato di scrivere ¬

2

In tilde logica può significare "non", che può essere fonte di confusione, come in matematica tilde può essere "equivalenza" o "ca". Tuttavia, si trova su più tastiere rispetto al meno ambiguo ¬. Attenzione, come tilde può anche significare bitwise non :)

+0

Grazie mille a tutti per le vostre risposte. Rispondono tutti alla mia domanda per una parte, quindi cosa dovrei fare? Posso contrassegnare tutte le risposte come "risposte"? – Ingo

+4

@Ingo. Scegli quale sembra il più completo. In un pareggio, scegli tra le risposte vincolate. Se sei ancora bloccato, vai per chiunque pensi che abbia la foto migliore (questo è quanti voti alle elezioni). Se ancora bloccato; scrivi un generatore di numeri pseudo casuali, testane la qualità rispetto ai test di sicurezza NIST, miglioralo fino a quando non passa, scrivi un articolo su una scoperta matematica che hai fatto nel modo giusto, ricevi un piccolo ma prestigioso premio per il tuo contributo allo stato di l'arte e quindi utilizzare il PRNG per selezionare una risposta da selezionare. Bene, questo o semplicemente sceglierne uno arbitrariamente. –

+0

in un tie breaker, vai per la persona con il rappresentante più basso! –

0

Perché .not..eq. rappresentato da ~=? Per lo stesso motivo per cui non è rappresentato come =!= o /= o una qualsiasi delle centinaia di altre convenzioni utilizzate nei linguaggi di programmazione.

E il twiddle, o ~, è ampiamente utilizzato nei testi di logica per indicare NOT.

Problemi correlati