Ricerca…


Sintassi

  1. C = unione (A, B);
  2. C = intersezione (A, B);
  3. C = setdiff (A, B);
  4. 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



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow