Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Elektrotechnik für Informatiker mit MATLAB und Multisim

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Wert in Matrix suchen

 

daftpunker
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 13.05.09
Wohnort: ---
Version: 5.3
     Beitrag Verfasst am: 13.05.2009, 10:13     Titel: Wert in Matrix suchen
  Antworten mit Zitat      
Hallo, ich habe eine frage zu folgendem Problem:
ich habe eine große anzahl an messdaten in form einer Matrize vorliegen und in genau einer spalte der matrize würd ich gern nach einem wert suchen der einem vorher definierten am nächsten kommt. sprich: es ist zum beispiel ein wert gesucht der dem wert "200" in genau dieser spalte am nähsten kommt.
kann mir da jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 13.05.2009, 10:28     Titel:
  Antworten mit Zitat      
Du suchst dir die Spalte aus, ziehst deinen gewollten Wert ab und der Wert der am nächsten an Null liegt gewinnt. Wink

Code:

A % Matrix
Spalte=3;
Wert=200;
[I Zeile]=min(abs(A(:,Spalte)-Wert));
 

_________________

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 13.05.09
Wohnort: ---
Version: 5.3
     Beitrag Verfasst am: 13.05.2009, 11:05     Titel:
  Antworten mit Zitat      
Super vielen Dank, hast mir sehr geholfen! Exclamation
Private Nachricht senden Benutzer-Profile anzeigen
 
Ferp
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2011, 13:20     Titel:
  Antworten mit Zitat      
Ich habe ein ähnliches Problem und dieses Thema in der Suche gefunden.
Im Gegensatz zum Autor möchte ich die Zeile herausfinden, in der der Wert steht, der meinem am nächsten kommt.
Bisher habe ich
Code:


zeile_mit_wert_matrix=find (matrix == min(abs(matrix(:,1)- wert)),1)

 

Ausgegeben wird allerdings nur eine leere 0x1-Matrix. Wo liegt mein Fehler?

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 10.972
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.10.2011, 14:21     Titel:
  Antworten mit Zitat      
Hallo Ferp,

"min(abs(matrix(:,1) - wert))" ist um "wert" kleiner als der kleinste Absoult-Wert. Hast Du eine Grund dafür, dass ein solcher Wert exakt in der Matrix vorkommt? Oder könnten Rundugnsfehler den Wert so ändern, dass eine exakte Übereinstimmung nicht vorkommt?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Exurso

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2011, 17:44     Titel: so ähnlich
  Antworten mit Zitat      
Meine Problem geht in eine ähnliche Richtung.

allg. Darstellung:

eine Matrix mit vielen Zeilen und 3 Spalten, welche jeweils "Priorität", "Größe" und "Zuweisung" zu den(durch die Zeilen repräsentierten) Übertragungsstrecken enthalten.

Im ersten Schritt wird die Matrix nach der Prio sortiert. Nun ist logischerweise die erste Zeile nicht mehr die erste Strecke und bei einer Zuweisung eines Ausgangssignals würde die falsche Strecke angesteuert werden.
Um diese wieder zufinden, sollen die Zuweisungs Zahlen genutzt werden.

Wie kann ich also MatLab sagen, dass ich den Wert von "Größe" haben möchte, welcher sich in der Zeile mit "Zuweisung" == 1 befindet?

Beispiel:

vor sortierung

\begin{vmatrix} Prio & Groesse & Zuweis \\ 2.4 & 20 & 1 \\ 0.5 & 13 & 2 \\ 3.8 & 7 & 3 \end{vmatrix}

nach sortierung


\begin{vmatrix} Prio & Groesse & Zuweis \\ 0.5 & 13 & 2 \\ 2.4 & 20 & 1 \\ 3.8 & 7 & 3 \end{vmatrix}


Wäre Klasse, wenn ihr mir dabei weiterhelfen könntet.

Gruß

Lars
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 22.12.2011, 10:38     Titel:
  Antworten mit Zitat      
@Exurso

Ich hoffe, ich habe deine Frage richtig verstanden.

Code:
% M ist deine Matrix
ind=find(M(:,3)==1); % ind sind die Indizes der Zeilen in denen die 3. Spalte eine 1 enthält
Ergebnis=M(ind,2);
 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das FIND kann man da natürlich weglassen Wink

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2012, 10:08     Titel:
  Antworten mit Zitat      
jo Funzt! Danke
 
Becki123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2015, 11:34     Titel:
  Antworten mit Zitat      
Hallo zusammen,

habe ein ähnliches Problem. Allerdings möchte ich zwei Werte aus einer Tabelle als Wertepaar auslesen. Also bestimmt werden soll die Zeile aus meiner Matrix welche am ehesten meinen zwei Werten ähnelt.

[I, Zeile]=min(abs(Matrix(:,1)-Wert1(1,1)));

Wie kann ich in meiner Formel noch den zweiten Wert unter bringen?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.042
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.11.2015, 18:54     Titel:
  Antworten mit Zitat      
Hallo,

wie soll denn aus den beiden Abweichungen die eine ermittelt werden? Eine Möglichkeit:

Code:
[I, Zeile]=min(max(abs(Matrix(:,1:2)-Wert1(1,1:2)), [], 2));


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
ilmiomondo
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 18.05.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2018, 09:40     Titel: Werte in Matrix suchen
  Antworten mit Zitat      
Hallo ich hab folgendes Problem;

Ich habe eine Matrix mit 3 Spalten und vielen Daten. Die dritte Spalte ist in Zonen von 1-5 eingeteilt ( jedoch nicht in chronologischer Reihenfolge)
Wert 1 Wert 1,1 Zone 1
Wert 2 Wert 2,1 Zone 2
Wert 3 Wert 3,3 Zone 4
Wert 5 Wert 5,5 Zone 1
Wert 6 Wert 6,6 Zone 5
Wert 7 Wert 7,7 Zone 1
Wert 8 Wert 8,8 Zone 4
Wert 9 Wert 9,9 Zone 1
Ich möchte gerne alle Werte aus Zone 1 mit den dazugehörigen Werten aus der Zeile.
Kann mir jemand bitte helfen?
Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab232
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.09.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2020, 11:03     Titel:
  Antworten mit Zitat      
Becki123 hat Folgendes geschrieben:
Hallo zusammen,

habe ein ähnliches Problem. Allerdings möchte ich zwei Werte aus einer Tabelle als Wertepaar auslesen. Also bestimmt werden soll die Zeile aus meiner Matrix welche am ehesten meinen zwei Werten ähnelt.

[I, Zeile]=min(abs(Matrix(:,1)-Wert1(1,1)));

Wie kann ich in meiner Formel noch den zweiten Wert unter bringen?


Hat jemamd dazu eine Antwort? Ich möchte ebenfalls die Zeile auslesen, die am nächsten an zwei Spaltenwerten dran ist.
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2020 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.