Gegeben ein Vektor
%Vor%Ich möchte alle Elemente außer jedem n-ten extrahieren. Also, für n = 5 sollte meine Ausgabe
sein %Vor%Ich weiß, dass Sie mit
auf jedes n-te Element zugreifen können %Vor%aber ich brauche etwas wie den inversen Befehl. Wenn dies nicht existiert, würde ich über die Elemente iterieren und jeden n-ten Eintrag überspringen, aber das wäre der schmutzige Weg.
Oder Sie können die logische Indizierung verwenden:
%Vor%Über den Befehl "Inversion", den Sie angegeben haben, ist es möglich, dieses Verhalten mithilfe der logischen Indexierung zu erreichen. Sie können den zu transformierenden Vektor für jede 1 in 0 und umgekehrt negieren.
Also, dieser Code wird jedes ABER das fünfte Element entfernen:
%Vor% Eine mögliche Lösung für Ihr Problem ist die Funktion setdiff()
.
In Ihrem speziellen Fall wäre die Lösung:
%Vor%Wenn Sie alles auf einmal machen, können Sie beide zusätzlichen Variablen vermeiden:
%Vor%Logische Indizierung ist jedoch eine schnellere Option als < a href="http://www.mathworks.com/matlabcentral/answers/41762-delete-row-from-matrix#answer_51471"> getestet :
%Vor% Alle diese Codes setzen voraus, dass Sie die Variable n
angegeben haben und sich an einen anderen Wert anpassen können.