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

Matrixelement bestimmen

 

Sharky

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2008, 16:55     Titel: Matrixelement bestimmen
  Antworten mit Zitat      
Hallo,

habe folgendes Problem. Ich möchte gerne einen Indize eines bestimmten Elementes meiner Matrix bestimmen. Meine Matrix sieht z.B. so aus

Code:


Matrix-Format

2  4  3  5
1  2  4  3
2  3  6  8
9  8  7  1

Vektor-Format

2 4 3 5 1 2 4 3 2 3 6 8 9 8 7 1
                           ^ = 11
 


Gibt es eine Funktion, welche die Matrix als Vektor "betrachtet" und ich somit bspw. die Position Zahl 6 in (3,3) bestimmen könnte? Die Position müsste 11 sein, wenn ich die Matrix z.B. von links nach rechts bzw. von oben nach unten durchlaufe.

Ich hoffe es ist klar, was ich meine.


Sharky

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2008, 16:57     Titel:
  Antworten mit Zitat      
Anmerkung: Die Darstellung beim Vektor-Format ist nicht korrekt. Hoffe man versteht es auch so.
 
Tim
Forum-Century

Forum-Century



Beiträge: 140
Anmeldedatum: 03.11.07
Wohnort: Stuttgart
Version: 2011b+aktuellstes Release
     Beitrag Verfasst am: 24.10.2008, 17:23     Titel:
  Antworten mit Zitat      
Code:
>> matrix = [0 1 2; 3 4 5; 6 7 8]';
>> matrix(3)

ans =

     2
Question
Private Nachricht senden Benutzer-Profile anzeigen
 
Sharky

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2008, 17:37     Titel:
  Antworten mit Zitat      
Also, dass ist nicht das was ich suche. Im Grunde habe ich nur die Angabe über die Zeile sowie die Spalte, d.h. in meinem obigen Beispiel m=3 und n = 3. Hieraus möchte ich die Zahl (Position) ermitteln, die man erhält, wenn man die Matrix Zeilenweise durchlaufen würde.
 
Tim
Forum-Century

Forum-Century



Beiträge: 140
Anmeldedatum: 03.11.07
Wohnort: Stuttgart
Version: 2011b+aktuellstes Release
     Beitrag Verfasst am: 24.10.2008, 19:17     Titel:
  Antworten mit Zitat      
Achso. Du hast eine m (zeilen) * n (spalten) Matrix, du willst den Index des gedachten Vektors für das Element x,y:

-> (x-1)*m + y
Private Nachricht senden Benutzer-Profile anzeigen
 
Sharky

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2008, 23:09     Titel:
  Antworten mit Zitat      
Hallo Tim,

erstmal danke für deine Hilfe. Smile

Kann es sein, dass die Formel nicht so ganz korrekt ist? Angenommen ich nehme das Element x=4, y=3 aus der von mir geposteten Matrix:

(x - 1)*m + y
= (4 - 1)*4 + 3
= (16 - 4) + 3
= 12 + 3
= 15

Herauskommen müsste aber (Position) 12. Shocked
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 24.10.2008, 23:22     Titel:
  Antworten mit Zitat      
Matlab durchläuft die Matrix von oben nach unten und wechselt erst dann weiter nach rechts.

Mittels

Code:

A(:) % macht die Matrix zu einem Vektor der Länge (m*n)
 


kannst du die Matrix zu einem Vektor machen und dir das mal anschauen.

Die Position eines bestimmten Wertes findest du über die find funktion.

Code:

matrix = [0 1 2; 3 4 5; 6 7 8]';
 find(matrix==6) % der Wert 6 wird an 7ter Position gefunden
 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sharky

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2008, 11:01     Titel:
  Antworten mit Zitat      
Hallo,

ich möchte, die Position aber nicht über den Wert, den sie gespeichert hat bestimmen, sondern über über zwei "Koordinaten", die die Zeile sowie die Spalte wiederspiegeln.

Gruß
 
Schrank
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 25.10.2008, 11:18     Titel:
  Antworten mit Zitat      
Hallo sharky,
die Formel von Tim ist richtig, nur das ihr euch über die Bedeutung von x & y uneinig seit.
Versuch mal
Code:


Gruß Schrank
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 - 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.