|
|
Matrix, Schleife, Spalten löschen, Anfängerproblem, Matriz |
|
tky |
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.07.2017, 10:55
Titel: Matrix, Schleife, Spalten löschen, Anfängerproblem, Matriz
|
|
hallo,
ich habe eine Matrix mit 6 Spalten. Nun möchte ich im ersten Schritt die 1. Spalte löschen und mit der neuen Matrix mit 5 Spalten weiter arbeiten. Im Anhang ist der Code dazu.
Nun würde ich aber gern im nächsten Schritt das ganze wiederholen mit der 2. Spalte und dann mit der 3. usw. aber ohne die Schleife jetzt 6 mal hinzuschreiben. Kann mir jemand weiterhelfen?
Danke im Voraus
Beschreibung: |
|
Download |
Dateiname: |
matrix.PNG |
Dateigröße: |
2.72 KB |
Heruntergeladen: |
284 mal |
|
|
|
|
|
Xaratau |
Forum-Anfänger
|
|
Beiträge: 31
|
|
|
|
Anmeldedatum: 14.06.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2018b
|
|
|
|
|
|
Verfasst am: 06.07.2017, 11:13
Titel:
|
|
Hallo tky,
einzelne Spalten einer Matrix kannst du so löschen:
Was meinst du mit "Schleife 6 mal hinschreiben" ?
Willst du die Matrizen in einer function erstellen und auch dort zum weiterrechnen nutzen?
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.07.2017, 11:41
Titel:
|
|
Genau, so weit bin ich auch schon. Im ersten Schritt wollte ich nur die 1. Spalte entfernen. Meine Matrix hat dann lediglich nur noch 5 Spalten (hier dann 2-6). Damit möchte ich dann weiter rechnen.
Das ganze würde ich dann wiederholen aber diesmal mit entfernen der 2. Spalte, sodass die Matrix nur noch die Spalten 1,3-6 besitzt usw.
Irgendeine idee?? hab jetzt schon einiges versucht komm aber nicht auf das gewünschte Ergebnis
So wie im Anhang soll es eigentlich aussehen. Später hat die Matrix aber weit aus mehr Spalten und mehr als 1000 Zeilen
Beschreibung: |
|
Download |
Dateiname: |
spalten_löschen.PNG |
Dateigröße: |
10.55 KB |
Heruntergeladen: |
282 mal |
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.07.2017, 12:01
Titel:
|
|
Bei einer kleinen Matrix könnte man es ja noch alles separat machen. Bei höher dimensionalen Matrizen wird das aber schwierig. Hat jemand eine Idee?? Wäre sehr dankbar.
|
|
|
Xaratau |
Forum-Anfänger
|
|
Beiträge: 31
|
|
|
|
Anmeldedatum: 14.06.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2018b
|
|
|
|
|
|
Verfasst am: 06.07.2017, 13:28
Titel:
|
|
Vermutlich wird es am sinnvollsten sein, wenn du die einzelnen Matrizen in einem cell array speicherst.
In diese Funktion kannst du eine beliebige Matrix eingeben und er wird dir in der Ausgabe ein cell generieren, das in der ersten spalte die ursprüngliche MAtrix ohne die erste Spalte hat, in der zweiten die ursprüngliche Matrix ohne die zweite Spalte usw...
Abfragen kannst du sie dann ganz einfach über
Viele Grüße
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.07.2017, 14:06
Titel:
|
|
ja. das funktioniert super. vielen dank.
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.07.2017, 11:39
Titel:
|
|
Xaratau,
mit kleinen Spaltenlängen geht das ja noch aber ab länge 10 erhalte ich eine fehlermeldung. kann jemand weiter helfen?
Beschreibung: |
|
Download |
Dateiname: |
error.PNG |
Dateigröße: |
28.88 KB |
Heruntergeladen: |
302 mal |
|
|
|
Xaratau |
Forum-Anfänger
|
|
Beiträge: 31
|
|
|
|
Anmeldedatum: 14.06.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2018b
|
|
|
|
|
|
Verfasst am: 07.07.2017, 12:53
Titel:
|
|
Das Problem ist hier, dass ich den Befehl length verwendet habe. Length gibt jedoch immer die größte Dimension aus. Das bedeutet, wenn die Matrix mehr Zeilen als Spalten hat, wird diese Zahl ausgegeben, umgekehrt genauso.
Abhilfe schafft hier der Befehl size. Dieser gibt einen Vektor mit Anzahl der Zeilen und Anzahl der Spalten zurück. Also einfach den Befehl length mit size(2) ersetzen:
Ich bin davon ausgegangen, dass es sich immer um Matrizen handelt, bei denen die Anzahl an Spalten und Zeilen gleich ist. Dann hätte length auch gepasst.
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.07.2017, 13:10
Titel:
|
|
Perfekt! Das muss man natürlich wissen. Vielen Dank für die Erklärung
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2017, 11:20
Titel:
|
|
hallo,
ich würde den code gerne erweitern, so dass ich mehrere spalten kombiniert lösche.
Zum Beispiel bei einer matrix mit 4 spalten
spalte 1 und 2
spalte 1 und 3
spalte 1 und 4
solange bis ich alle kombinationen durch habe. ich würde gerne 2er und 3er Kombinationen versuchen.
theoretisch ginge das auch noch von hand wenn ich den code
verwende. Jedoch wird das ab bestimmter Größe der Matrix umständlich. Hat jmd ein Ansatz?
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.07.2017, 17:34
Titel:
|
|
Hallo tky,
Wie wäre es dann einfach mit einer zweiten Schleife? Statt "1:2" kannst Du ja schreiben:
Gruß, Jan
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.07.2017, 12:24
Titel:
|
|
Danke Jan S.
gibt mir aber eben nur die Spaltenzahl aus nicht die Spalten der Matrix selbst. Aber der Ansatz mit den For-Schleifen sieht sehr gut aus
ich habs mal mit zwei For-Schleifen versucht. Irgendwo scheint aber noch ein Fehler zu sein. Matlab gibt mir die Matrizen mit meinen Spaltenkombinationen nicht aus
Weiß jemand wo der Fehler ist?
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.07.2017, 11:00
Titel:
|
|
weiß jemand wie ich die Spalten in einer matrix mit dem code von Jan S ausgeben kann?
|
|
|
tky |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 05.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.07.2017, 16:24
Titel:
|
|
hallo,
ich habs jetzt ganz gut hinbekommen. Danke für jede Hilfe.
Ich würde mein Code gerne um eine Bedingung erweitern hab aber noch keinen Ansatz.
Matlab soll mir jetzt nur die Matrizen ausgeben, von denen die Eigenwerte bestimmte Größen haben!
Momentan gibt mir Matlab alle Matrizen und ihre dazugehörigen Eigenwerte aus.
Kann jmd weiter helfen?
Vielen Dank
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 18.07.2017, 18:24
Titel:
|
|
Hallo tky,
Wenn man nur den Code sieht, der nicht funktioniert, ist noch nicht klar, was Du genau bekommen möchtest. Was ist denn der "Fehler"?
Soll "cellarray" hinterher alle Matrizen enthalten, in denen jeweils die Spalten fehlen?
Zitat: |
Matlab soll mir jetzt nur die Matrizen ausgeben, von denen die Eigenwerte bestimmte Größen haben!
Momentan gibt mir Matlab alle Matrizen und ihre dazugehörigen Eigenwerte aus. |
Dann post den Code und erkläre, was noch nicht wie gewünscht läuft und wie es statt dessen aussehen soll.
Gruß, Jan
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|
|