Dies sollte Ihr Problem lösen.
matrix=randi(100,[50 50]);
rows2remove=[2 4 46 50 1];
cols2remove=[1 2 5 8 49];
matrix(rows2remove,:)=[];
matrix(:,cols2remove)=[];
Bei genauerer Überlegung, wenn Sie Indizes haben, konvertieren Sie diese Indizes zuerst in Positionen mit der Funktion ind2sub
wie folgt:
[rows2remove,cols2remove] = ind2sub(size(matrix), VecOfIndices);
Jetzt haben Sie die Zeilen- und Spaltenindizes der Elemente, die entfernt werden müssen. Einzelne Elemente können nicht aus einer Matrix entfernt werden. Ich gehe also davon aus, dass Sie die gesamte Zeile und Spalte entfernen möchten. Das kann wie folgt gemacht werden:
rows2remove=unique(rows2remove);
cols2remove=unique(cols2remove);
matrix(rows2remove,:)=[];
matrix(:,cols2remove)=[];
Wenn Sie einzelne Elemente entfernen möchten, verwenden Sie entweder ein Zellarray oder ersetzen Sie diese Elemente durch einen veralteten Wert wie z.B. 9999.