Ich habe eine Spaltenmatrix und ein Zellen-Array, das zwei Spalten hat. Die erste Spalte hat 1x2 verdoppelt und die zweite Spalte hat 1x1 verdoppelt.Suche Elemente der Matrix in einer anderen Zelle in Matlab
Zum Beispiel
columnMatrix = [1;5];
cellArray = {[1,8],[10];[8,1],[20];[4,6],[80];[3,5],[40];[14,16],[85];[5,10],[36]};
Ich mag jedes Element columnMatrix
in cellArray(:,1)
suchen, und dann seinen entsprechenden Wert zurück in cellArray(:,2)
beispielsweise die Ausgabe so
newCell = {[1],[10,20];[5],[40,36]};
sein muss,
Ich versuchte mit der ismember
Funktion auf diese Weise
[~,idx] = ismember(cell2mat(cellArray(:,1)),columnMatrix (: , 1));
Dies gibt alle Indizes zurück, die das gesuchte Element haben, aber sie sind in zwei separaten Spalten und ich kann keine andere logische Operation ausführen, um den entsprechenden zweiten Spalteneintrag zu erhalten.
Gibt es eine Möglichkeit, diese Operation zu erreichen? Könnte jemand bitte helfen?
Dank
Welche Indizes zeigt es und wie sie angeordnet sind? – Crowley
'idx = [1,0; 0,1; 0,0; 0,2; 0,0; 2,0];' –