WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Werte auf einer Diagonalen ausgeben lassen

 

Giralsol1986
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2015, 17:18     Titel: Werte auf einer Diagonalen ausgeben lassen
  Antworten mit Zitat      
Liebe Leute,

ich habe folgendes Problem:

Ich habe eine Matrix 600x600.
Zuerst suche ich eine bestimmte Zahl (die einigen Anforderungen entspricht und lasse mir die Position in der Matrix ausgeben).

Nun möchte ich von diesem Wert/Stelle in der Matrix mir die Werte auf den beiden Diagonalen ausgeben lassen, die diesen Punkt durchkreuzen. Die Diagonalen werden unterschiedliche Größen haben, da der entsprechende Wert im Zentrum der Diagonalen auch mal am Rand der Matrix liegen kann.

Allerdings ist mir bisher noch keine Idee gekommen, wie ich mir die Werte auf den Diagonalen ausgeben lassen kann. Es gibt zwar sowas wie die Matrixdiagonale oder man kann die darunter oder drüber liegenden Diagonalen ansprechen, aber meine können irgendwo in der Matrix liegen.

Die Werte auf den Diagonalen sollen solange gespeichert werden, bis das ein Wert 1 ist, dann ist die Diagonale "beendet".

Ich weiss, das klingt alles sehr komisch, aber vielleicht hat jemand einen Denkanstoss für mich. Smile

Ich habe nämlich gerade noch nicht mal einen Code, da ich überhaupt keine Idee habe wie ich da angehen kann.

Viele Grüße!
Private Nachricht senden Benutzer-Profile anzeigen


laternenjoe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 25.02.15
Wohnort: Bochum
Version: ---
     Beitrag Verfasst am: 10.03.2015, 20:09     Titel:
  Antworten mit Zitat      
Hallo,

ein Versuch von mir.
Erstmal würde ich mit find die Indizes der gesuchten Zahl ausgeben lassen.
Wenn ich dann m= Zeilenindex und n=Spaltennummer habe, dann ist doch die Nummer der diagonalen von oben links nach unten rechts
Code:
number_diag=n-m
meine ich. 0 für die Hauptdiagonale und 1 für Die erste Nebendiagonale über der Diagonalen und -1 für die darunter usw. Dann könnte man die Diagonale mit diag ausgeben lassen.
Für die andere diagonale von unten links nach oben rechts könnte man, so meine ich, im Prinzip die gleiche Rechnung machen, nur muss man dann die Matrix vorher spiegeln. Und zwar an der Mitte und die Spiegelachse ist senkrecht. Da müsste man dann eine Funktion glaube ich schreiben, die

Code:
[a b c d;
e f g h;
i j k l;
m n o p]

zu
Code:
[d c b a;
h g f e;
l k j i;
p o n m]

Dann wäre die gesuchte 2. Diagonale auch von oben rechts nach unten links.
Wäre glaube ich ein Ansatz.
Private Nachricht senden Benutzer-Profile anzeigen
 
laternenjoe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 25.02.15
Wohnort: Bochum
Version: ---
     Beitrag Verfasst am: 10.03.2015, 23:54     Titel:
  Antworten mit Zitat      
das mit dem umkehren hab ich gerade gesehen geht mit
Code:

Idea Smile
oder
Code:
A= round(rand(2,3)*10)
% spiegeln zw. oben und unten(flipud)
B= A(end:-1:1,:)
% spiegeln zw. links und rechts (fliplr)
C= A(:,end:-1:1)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.