Hallo zusammen,
ich hätte ein Cell Array vorliegen.
Zum Beispiel:
A = {[1 2 3]; [3 3 4]; [1 4]
Nun würde ich gerne jeden Vektor von A miteinander vergleichen und dann als Ergebnis herausbekommen, an welcher Stelle jedes Vektors gleiche Werte vorliegen.
Das heißt in unserem Beispiel, dass folgende Vergleiche automatisiert durchgeführt werden sollen:
- A{1} mit A{2}
- A{2} mit A{1}
- A{1} mit A{3}
- A{3} mit A{1}
- A{2} mit A{3}
- A{3} mit A{2}
Als Code könnte ich für den ersten Fall (für die anderen Fälle muss dann nur noch der Index von A angepasst werden) folgendes verwenden:
find(ismember(A{1},A{2}
Dementsprechend würde ich beim 1. Fall als Ergebnis z.B. [3] (da die 3 nur an der dritten Stelle von A{1} vorkommt) herausbekommen. Im 2. Fall würde [1 2] (da die 3 an erster und zweiter Stelle in A{2} vorkommt) herauskommen usw.
Mein Problem ist jetzt, dass ich nach einer Lösung suche, wie ich diese Vergleiche automatisiert ablaufen lassen kann, weil ich A z.B. auch mal 4 Vektoren in der Zelle drinstehen haben könnte und dann noch mehr Vergleiche durchgeführt werden müssten.
Für den Fall, dass A sicher nur 3 Vektoren hat, hätte man einfach ein switch case programmieren können innerhalb einer for-Schleife mit i = 1:3, aber dann sind halt die Grenzen schon vorgegeben..
Hat da jmd eine Idee?
Vielen Dank!
LG
Kai
↧