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

Vektorermittlung

 

Peter21
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 20:50     Titel: Vektorermittlung
  Antworten mit Zitat      
Hallo zusammen,

habe mir 2 Vektoren berechnet. Ein Vektor mit Datümer und ein Vektor mit Identifikationsnummern.

Würde jetzt gerne mit Hilfe dieser beiden Vektoren eine dritten Zahl aus einer Matrix ermitteln.

Heisst, ich ich will wissen bei welcher Identifikationsnummer ich die Höchstwerte finde, und wie die 3 Variable in dieser Zeile ist.

Mein Gedanke ist das ich irgendwie einen Vektor finden muss der mir meine Identikationsnummer mit dem entsprechenden Höchstwert verbindet. Mit Hilfe dieses Vektor sollte ich dann problemos meine 3. Zahl bekommen.

Habe es mit ismember und find versucht, es aber nicht hinbekommen. Kann mir jemand vllt einen Tipp geben???

Vielen Dank schonmal.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2013, 21:36     Titel:
  Antworten mit Zitat      
Hallo,

mir ist nicht klar, nach welchen Kriterien du die Zahl aus der Matrix ermitteln willst. Das müsste man aber wissen, um die zu helfen.

Ein kleines konkretes Beispiel, was gegeben ist und welche Ergebnisse gewünscht sind, könnte helfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter21
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 21:48     Titel:
  Antworten mit Zitat      
Vektor 1 = vektor 2=

15.01 1111
20.01 2222
25.01 3333
30.01 4444

Matrix

15.01 2222 Hallo
20.01 3333 Tschüss
25.01 1111 AufWiedersehen
30.01 4444 Guten Tag

Ich brauche nun einen Vektor der mir sagt, das in Zeile 1 der 15.01 zusammen mit der Identifikationsnummer steht. Mit Hilfe dieses Vektor kann dann problemlos mir den Wert Hallo wiedergeben. Muss irgendwie die beiden ersten Vektoren richtig zusammenführen.

Der Vektor in dem Beispiel würde dann so aussehen:
1
2
3
4

Ist das Beispiel klar?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2013, 22:26     Titel:
  Antworten mit Zitat      
Hallo,

offen gesagt verstehe ich genauso viel wie vorher.

Vektor 1, Vektor 2 und Matrix sind gegeben?
[1; 2; 3; 4] wäre das gewünschte Ergebnis? Nur: wie erschließt sich das aus den gegebenen Daten?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter21
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 22:47     Titel:
  Antworten mit Zitat      
Vektor 1,2 und die Matrix sind gegeben.

In der Matrix steht in der 1. Spalte der Wert 15.01. und in der 2.Spalte 2222.

Ich weiss nur, dass in Vektor 1 mehrere Datümer sind und in Vektor 2 mehrere Nummern für die eine Verbindung innerhalb der Maxtrix existiert. Hier in dem Fall in Spalte 1 die Werte 15.01 und in Spalte 2 der Wert 2222. In der Matrix sind weitere Kombination von Vektor1 und Vektor2 vorhanden. Beispielsweise der Wert 30.01 und der Wert 4444.

Ich möchte alle diese Kombinationen finden und wissen in welcher Zeile diese stehen.

Gruss Peter
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2013, 23:08     Titel:
  Antworten mit Zitat      
Hallo,

bitte genau beschreiben, was du als Ergebnis möchtest.

Dass in Zeile 1 die Kombination 15.01. und 2222 steht, steht ja schon in der Matrix drin. Das muss man also doch nicht mehr herausfinden?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter21
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 23:13     Titel:
  Antworten mit Zitat      
Das weiß ich wenn ich in der Matrix suchen gehe. Aber meine Matrix hat 10000 Zeilen und das würde ich gerne vereinfachen.

Gruß peter
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2013, 23:28     Titel:
  Antworten mit Zitat      
Hallo,

d.h. du suchst in der Matrix nach Zeilen, deren 1. Spalte im 1. Vektor vorkommt und deren 2. Spalte im 2. Vektor vorkommt? Müssen sie ggf. an derselben Stelle vorkommen? Oder nach welchem Kriterium ermittelst du die Zeilen, die du haben möchtest?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter21
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 23:34     Titel:
  Antworten mit Zitat      
Genau. Das einzige Kriterium ist, das eine beliebige Zahl aus Vektor 1 mit einer beliebigen Zahl aus Vektor 2 in einer gemeinsamen Zeile in der Matrix stehen.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.10.2013, 08:52     Titel:
  Antworten mit Zitat      
Hallo,

jetzt verstehe ich. Vielleicht wäre es hilfreich gewesen, in die Matrix auch Zeilen aufzunehmen, die nicht ausgewählt werden sollen ;)

Code:
data = {'15.01' 1111
'20.01' 2222
'25.01' 3333
'30.01' 4444}

vektor1 = data(:,1);
vektor2 = cell2mat(data(:,2));

matrix = {'15.01' 2222 'Hallo'
'20.01' 3333 'Tschüss'
'25.01' 1111 'AufWiedersehen'
'30.01' 4444 'Guten Tag'}

logic = ismember(matrix(:,1), vektor1) & ismember(cell2mat(matrix(:,2)), vektor2);
v = 1:size(matrix,1);
v = v(logic)


Achte, wenn du das auf deine Daten anwendest, auf die Datentypen.
Falls es nicht funktioniert, bitte Datentyp und Dimensionen der beteiligten Vektoren und Matrizen angeben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter21
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.10.2013, 09:44     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für den Tipp. Mit der zusätzlichen Spalte in der Matrix funktioniert es.

Gruss Peter
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.