|
|
Löschen von Zeilen und Spalten einer Matrix mit Bedingung |
|
oadriano |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 19.04.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.04.2021, 19:25
Titel: Löschen von Zeilen und Spalten einer Matrix mit Bedingung
|
|
Guten Tag,
ich konnte schon mehrmals auf die Hilfe in diesem Forum zurückgreifen. Nun habe ich ein Problem, welches mich schon mehrere Tage beschäftigt.
Ich habe folgende Matrix:
Mein Ziel ist folgenes: Wenn eine Zeile genau zwei Einträge außer Null enthält, soll diese Zeile gelöscht werden. Es entstehen Nuller-Spalten, diese sollen auch gelöscht werden. Ich habe es versucht, aber es erscheint die Fehlermeldung, dass das Array überschritten wird. Nach jeder Iteration soll an einer anderen Stelle im Code was passieren, meine if Bedingung überschreitet aber das Array.
Hat jemand eine Lösung? Folgendes sollte das Ergebnis sein:
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.04.2021, 20:16
Titel:
|
|
Hallo,
Zitat: |
Wenn eine Zeile genau zwei Einträge außer Null enthält, soll diese Zeile gelöscht werden. |
Dann entsteht
A =
-1 0 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 -1 0 0 0
0 0 0 0 0 0 1
Wenn ich da aber die Nullspalten entferne, entsteht eine Diagonalmatrix und nicht die von dir genannte...
Wenn du schon was versucht hast, poste bitte generell den Code. Oft ist nur eine Kleinigkeit das Problem, und dann kann es viel leichter sein, dir den Fehler zu zeigen als von vorne anzufangen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
oadriano |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 19.04.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.04.2021, 20:27
Titel:
|
|
Vielen Dank für die Antwort! Es funktioniert, aber ich hatte einen Gedankenfehler. Ziel ist nicht die Diagonalmatrix, sondern die neue Matrix in der Frage. Es reicht nicht die Nullerspalten zu verschieben.
Zum Code kann ich wirklich nur das posten, was du eben beigetragen hast. Sollte eine Zeile gelöscht werden, muss an einem anderen Teil im Code was passieren, deswegen wollte ich es mit if implementieren
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.04.2021, 20:33
Titel:
|
|
Hallo,
Zitat: |
Sollte eine Zeile gelöscht werden, muss an einem anderen Teil im Code was passieren |
Und was? Du meintest ja, dass du einen Gedankenfehler hattest. Aber was soll denn stattdessen passieren?
Zitat: |
deswegen wollte ich es mit if implementieren |
Die Information reicht leider nicht, um dir weiterhelfen zu können...
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
oadriano |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 19.04.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.04.2021, 20:42
Titel:
|
|
Ich meine, wenn eine Zeile gelöscht wird, muss die Information gespeichert werden, welche Zeile gelöscht wurde. Danach muss eine Methode gefunden werden, die Matrix in Form
-1 0
1 0
0 -1
0 1
zu bringen.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.04.2021, 21:21
Titel:
|
|
Hallo,
Zitat: |
Danach muss eine Methode gefunden werden, die Matrix in Form
-1 0
1 0
0 -1
0 1
zu bringen. |
Und wie soll das gehen?
Die Methode muss m.E. schon der Anwender vorgeben. MATLAB kann sie nur umsetzen.
Ich wüsste jetzt nicht, wie aus der ursprünglichen 9x7-Matrix eine 4x2-Matrix werden soll. Klar, ich kann jetzt einen Code schreiben, der nach Lust und Laune irgendwas weglässt, um bei dem Ergebnis anzukommen - nur wird das dann halt allgemein nicht funktionieren und somit wenig bringen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|