|
|
"Diagonale" finden in Rechteck-Matrix |
|
Premutos |

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 29.05.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.06.2015, 11:49
Titel: "Diagonale" finden in Rechteck-Matrix
|
 |
|
 |
|
Moin Community,
meine Problem: Hab eine Matrix von ca. 70x2000(y,x).
Ich will daraus in etwa die Diagonale finden. Eine Annäherung reicht. Der "diag" Befehl hilft mir dabei nicht. Ich dachte mir ich teile x/y und gehe dann genau so viele Stellen entlang der x Achse, dann eine Zeile weiter runter in der Matrix und wieder genau so weit in x Richtung, nur diesmal mit einem Offset von genau dem Wert von x/y. Das nähert das ganze ausreichend an. Ich weiss nicht ob es eine Funktion gibt die so etwa tut. Ich dachte mir ich schreibe eine Schleife. Kurz gesagt: Ich habe die Test Matrix mit 4x16. Ich will jetzt aus der ersten Zeile die Werte 1:4, aus der zweiten Zeile die Werte 5:8, aus der dritten Zeile 9:12 und aus der vierten 13:16.
Die Schleife funktioniert so weit ganz schlecht. Sie macht was ich will, holt mir aber für jede Zeile immer nur die Werte 1:4, und vernachlässigt das Offset.
Bin für Anregungen und verbesserungen dankbar, bin noch nicht so lange mit matlab zu ganze.
Danke im Voraus!
Gruss,
P.
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.06.2015, 12:52
Titel:
|
 |
Hallo,
ein möglicher Ansatz:
Liefert zwar noch nicht genau das gewünschte, aber mit ein paar Anpassungen klappt das vielleicht. Die Idee dahinter ist, für jeden Spaltenindex den zugehörigen Zeilenindex durch Interpolation zu ermitteln.
Grüße,
Harald
|
|
|
Premutos |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 29.05.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.06.2015, 20:10
Titel:
|
 |
Danke erstmal für die Antwort!!
Gibt es vielleicht von jemand anderem noch einen weiteren Vorschlag?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.06.2015, 02:12
Titel: Re: "Diagonale" finden in Rechteck-Matrix
|
 |
Hallo Premutos,
Ich bin mir nicht sicher, ob ich die Frage richtig verstehe.
Suchst Du für eine 70x2000 Matrix die Elemente, die auf der Diagonalen liegen, z:b. von Links oben nach rechts unten?
Dann wären die Indizes für die längere Dimension hier 1:2000, und die der kürzeren:
Hilft das bereits?
Gruß, Jan
|
|
|
Premutos |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 29.05.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.06.2015, 03:59
Titel:
|
 |
|
 |
|
Hallo Jan,
danke für deine Antwort.
Ich habe mehrere unterscheidlich große Matrizen aber testhalber hier nur eine kleine, die ich dann auf die große umschreibe.
In der Matrix stehen Z-Positionen eine Fläche im Raum. Die zugehörigen X und Y Positionen habe ich bereits. Problem ist nur das die Z Positionen die mich interessieren entlang der "Diagonalen" der Rechteckmatrix stehen, also von links oben nach rechts unten. Ich brauche auch genau die Werte aus der Matrix und keine gerundeten etc.
Deshalb dachte ich bei einer Testmatrix von 4x16, suche ich aus der ersten Zeile die Werte 1:4, aus der zweiten Zeile die Werte 5:8, aus der dritten Zeile 9:12 und aus der vierten 13:16. Das müsste die Sache ausreichend annähern, da ich mich entlang der "Diagonalen" bewege. Das kann ich dann auf die große Matrix umschreiben. Nur leider tut meine oben geschriebene Schleife immer nur die Werte 1:4 aus der Testmatrix holen. Schön wäre es wenn das erstmal für die Testmatrix funktionieren würde.
Hoffe das hilft als Erklärung. Danke bis hier!
Gruss,
P.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 28.06.2015, 10:28
Titel:
|
 |
Hallo,
dein Code enthält geschachtelte for-Schleifen, unintuitive Variablennamen und ist nicht dokumentiert. Es ist daher schwierig zu verstehen, was der genaue Gedankengang bei dem Code ist.
Jan S. und ich haben dir jeweils einen Vorschlag gemacht, wie du das Problem lösen kannst. Hast du diese Vorschläge denn mal getestet? Ich vermute nicht, denn du schreibst
Zitat: |
Ich brauche auch genau die Werte aus der Matrix und keine gerundeten etc. |
Unsere Vorschläge runden nicht die Werte, sondern deren Indizes.
Eine Anpassung meines Codes, die zumindest im gewählten Beispiel genau das gewünschte liefert:
Grüße,
Harald
|
|
|
|
|
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 - 2025
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.
|
|