Zoeken…


Syntaxis

  1. C = vereniging (A, B);
  2. C = kruisen (A, B);
  3. C = setdiff (A, B);
  4. a = islid (A, x);

parameters

Parameter Details
A, B sets, mogelijk matrices of vectoren
X mogelijk element van een set

Elementaire setbewerkingen

Het is mogelijk om elementaire setbewerkingen uit te voeren met Matlab. Laten we aannemen dat we twee vectoren of arrays hebben gegeven

A = randi([0 10],1,5);
B = randi([-1 9], 1,5);

en we willen alle elementen vinden die zich in A en in B . Hiervoor kunnen we gebruiken

C = intersect(A,B);

C zal alle nummers omvatten die deel uitmaken van A en deel van B Als we ook de positie van deze elementen willen vinden, noemen we dat

[C,pos] = intersect(A,B);

pos is de positie van deze elementen zodanig dat C == A(pos) .

Een andere basisbewerking is de combinatie van twee sets

D = union(A,B);

Herby bevat D alle elementen van A en B

Merk op dat A en B hierbij als sets worden behandeld, wat betekent dat het niet uitmaakt hoe vaak een element deel uitmaakt van A of B Om dit te verduidelijken kan men D == union(D,C) aanvinken.

Als we de gegevens willen krijgen die in 'A' staan, maar niet in 'B', kunnen we de volgende functie gebruiken

E = setdiff(A,B);

We willen nogmaals opmerken dat dit sets zijn zodat de volgende instructie D == union(E,B) .

Stel dat we willen controleren of

x = randi([-10 10],1,1);

is een element van A of B we het commando uitvoeren

a = ismember(A,x);
b = ismember(B,x);

Als a==1 dan is x element van A en x is geen element a==0 . Hetzelfde geldt voor B Als a==1 && b==1 x is ook een element van C Als a == 1 || b == 1 x is element van D en als a == 1 || b == 0 het is ook element van E



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow