MATLAB Language
Imposta le operazioni
Ricerca…
Sintassi
- C = unione (A, B);
- C = intersezione (A, B);
- C = setdiff (A, B);
- a = ismember (A, x);
Parametri
Parametro | Dettagli |
---|---|
A, B | insiemi, possibilmente matrici o vettori |
X | possibile elemento di un set |
Operazioni di set elementare
È possibile eseguire operazioni di set elementari con Matlab. Supponiamo di aver dato due vettori o matrici
A = randi([0 10],1,5);
B = randi([-1 9], 1,5);
e vogliamo trovare tutti gli elementi che sono in A
e in B
Per questo possiamo usare
C = intersect(A,B);
C
includerà tutti i numeri che fanno parte di A
e parte di B
Se vogliamo anche trovare la posizione di questi elementi che chiamiamo
[C,pos] = intersect(A,B);
pos
è la posizione di questi elementi tale che C == A(pos)
.
Un'altra operazione di base è l'unione di due set
D = union(A,B);
Herby contiene D
tutti gli elementi di A
e B
Nota che A
e B
sono considerati come insiemi, il che significa che non importa quante volte un elemento fa parte di A
o B
Per chiarire questo si può controllare D == union(D,C)
.
Se vogliamo ottenere i dati che si trovano in "A" ma non in "B", possiamo usare la seguente funzione
E = setdiff(A,B);
Vogliamo ancora una volta notare che questo è un insieme tale che la seguente affermazione tiene D == union(E,B)
.
Supponiamo di voler controllare se
x = randi([-10 10],1,1);
è un elemento di A
o B
possiamo eseguire il comando
a = ismember(A,x);
b = ismember(B,x);
Se a==1
allora x
è l'elemento di A
e x
è nessun elemento è a==0
. Lo stesso vale per B
Se a==1 && b==1
x
è anche un elemento di C
Se a == 1 || b == 1
x
è l'elemento di D
e se a == 1 || b == 0
è anche un elemento di E