verwendet.
Nun wollte ich eigentlich statt der "6" ein "2:6" eintragen. Darauf kam der Fehler.
Eigentlich möchte ich nur die Nullzeilen löschen, in denen in den jeweiligen Spaltenzellen der Zeile eine Null steht. Das soll durch "2:6" überprüft werden.
Kann mir jemand den korrekten Weg zeigen? Ich raffs grad net.
eingibst. Da kommt nämlich eine Nx5 Matrix raus. Das passt dann nicht mit dem Befehl drum rum zusammen.
Ich glaube, dass ich nicht ganz verstehe, was du machen möchtest.
Willst du die Zeile löschen, wenn in einer Zeile in ALLEN Spalten 2 bis 6 eine Null steht oder wenn nur in mindestens EINER Spalte eine Null steht?
Aber das kann kein Mensch gut lesen. Daher empfielt es sich, so eine logische Indizierung mit vernünftigen Variablennamen zu erledigen. Beispielsweise so:
Code:
data = rand(3,6);
data(2,:) = [2,3,0,6,0,5]; % eine Zeile mit ein paar Nullen
row_contains_zeros = any(data(:,2:6)==0,2);
data(row_contains_zeros,:)=[]; % löscht Zeile 2, weil irgendwo in Zeile 2, Spalten 2-6 mindestens eine Null vorkommt
data = rand(3,6);
data(2,:) = [2,3,0,6,0,5]; % eine Zeile mit ein paar Nullen
data(3,:) = zeros(1,6); % eine Zeile mit nur Nullen
row_contains_only_zeros = all(data(:,2:6)==0,2);
data(row_contains_only_zeros,:)=[]; % löscht Zeile 3, weil in Zeile 2 in allen Spalten 2-6 Nullen stehen
Das war die Fehlermeldung:
??? Index of element to remove exceeds matrix dimensions.
Der Vorschlag von Nras hat nun funktioniert. Danke.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.