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

nach variablennamen suchen

 

a.meyer
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 01.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 10:18     Titel: nach variablennamen suchen
  Antworten mit Zitat      
Hallo zusammen!

Ich habe ein kleines Problem, was eigentlich relativ leicht zu lösen sein sollte:

Ich habe einen Vektor mit vier Elementen, die jeweils als Variable gespeichert sind. Aus dem Vektor suche ich mir dann mit min() den kleinsten Wert heraus und speichere den in einer neuen Variable.
Was mir fehlt, ist die Information, welche der Variablen in dem Vektor die kleinste war. Wie kann ich den zugehörigen Variablennamen des minimums des Vektors speichern, in einer anderen Variable am besten!

Vielen Dank für Hilfe im Voraus!!!
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.08.2011, 10:49     Titel:
  Antworten mit Zitat      
Hallo,

ich bin mir noch nicht ganz sicher was du meinst. Wie wäre es z.B. mit einer Struktur?

Code:

Minima(1).Name = 'Var.-name 1'
Minima(1).wert = [ Wert ]
Minima(2).Name = 'Var.-name 2'
Minima(2).wert = [ Wert ]
...

% oder als cell
c(1,1)={'Var.-name 1'}
c(1,2)={[Wert]}
c(2,1)={'Var.-name 2'}
c(2,2)={[Wert]}
 
Private Nachricht senden Benutzer-Profile anzeigen
 
a.meyer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 01.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 10:53     Titel:
  Antworten mit Zitat      
also, das kenne ich so nicht, ich beschreibe noch mal mit bsp:

Code:

temp = [a b c d];
F = min(temp);
 


a,b,c und d sind jeweils Variablen mit zugewiesenen double - Werten.
F ist der kleinste (maßgebende) Wert.
Nun muss ich wissen, ob F gleich a,b,c oder d ist!

Danke! auch schon für die superschnelle Antwort Wink
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: 07.08.2011, 11:13     Titel:
  Antworten mit Zitat      
Hallo,

ein Blick in die Doku von MIN sollte verraten, dass das über das zweite Rückgabeargument geht:
Code:
[F, index] = min(temp);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
a.meyer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 01.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 11:23     Titel:
  Antworten mit Zitat      
vielen dank!!!

ups, ja ok, hätte ich sehen können!
das übliche phänomen mit dem Wald und dem Baum Sad

jetzt muss ich noch sehen, dass ich über die Zahl an den Namen komme...
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.08.2011, 11:25     Titel:
  Antworten mit Zitat      
Damit kommt man aber nur indirekt auf den Namen Wink

Da müsste man dann prüfen, wie viele Element jeweils a,b,c oder d haben, denn der Index bezieht sich ja auch alle Elemente in temp.

Code:

if index < length(a)
   Name = 'a';
elseif (index > length(a)+length(b)) && index < (length(a)+length(b)+length(c))
   Name = 'b';
elseif (index > length(a)+length(b)+length(c)) && (index < length(a)+length(b)+length(c)+length(d))
   Name = 'c';
else
   Name = 'd';
end
 


Gleich mit einer Struktur oder Cellen zu arbeiten, wäre da auf jeden Fall einfacher.
Private Nachricht senden Benutzer-Profile anzeigen
 
a.meyer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 01.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 11:28     Titel:
  Antworten mit Zitat      
also a,b,c,d können immer nur aus einem double-Element bestehen, somit ist das schon machbar so
Private Nachricht senden Benutzer-Profile anzeigen
 
a.meyer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 01.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 11:41     Titel:
  Antworten mit Zitat      
aber wie bekomme ichs dann hin, dass ich nicht nur z.b. "3" im index gespeichert habe, sonder dann "c".
habs über ne for-schleife probiert, aber da brauche ich auch einen befehl, der dann nicht den dritten wert ausliest sonder den dritten namen...
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.08.2011, 12:06     Titel:
  Antworten mit Zitat      
Na wenn das immer nur ein Element hat...

Das würde aber auch mit meiner if Abfrage funktionieren Wink

Oder so...

Code:

switch index
    case 1
        Name = 'a';
    case 2
        Name = 'b';
    case 3
        Name = 'c';
    case 4
        Name = 'd';
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
a.meyer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 01.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 12:32     Titel:
  Antworten mit Zitat      
ja ok, so hatte ich mir das schon gedacht, hätte das gerne kürzer, einfacher, weil ich das sehr häufig brauche...
naja, dann muss ich das wohl so machen, aber ich finds schon komisch, dass man nicht den Namen direkt ansprechen kann, sowas wie den dritten Namen, aber dann halt nicht Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.08.2011, 12:42     Titel:
  Antworten mit Zitat      
Mir fällt keine kürzere Lösung ein...außer gleich mit einer Struktur zu arbeiten. Das wäre hier sinnvoll und ist doch nicht wirklich kompliziert Wink

Edit: In temp[] stehen halt auch nicht die Namen, sondern die Werte der Variablen Wink

Zuletzt bearbeitet von DSP am 07.08.2011, 12:47, insgesamt einmal bearbeitet
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: 07.08.2011, 12:45     Titel:
  Antworten mit Zitat      
Hallo,

es liegt daran, dass MATLAB nicht mit den Variablen an sich arbeitet, sondern sie auswertet. Es ist also für MATLAB egal, ob die Variable a, b oder sonstwie heißt; entscheidend ist nur der Wert.

Mich erstaunt etwas, dass du dies brauchst, und das auch noch öfter. Vielleicht liegt das an dem Programmierstil?

Wenn du etwas öfter brauchst, kannst du es im übrigen ja auch in eine Funktion packen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
a.meyer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 01.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 12:52     Titel:
  Antworten mit Zitat      
Hi!
Erst mal danke für die viele schnelle Hilfe!
Ich brauche dass, weil ich aus mehreren vorher berechneten Tragfähigkeiten die maßgebende raussuchen muss! Die wird dann noch mehrmals verglichen und evtl abgemindert! Dabei muss ich dann jeweils wissen, welche Tragfähigkeit insgesamt dann maßgebend ist...
Das mit der Funktion muss ich mir mal anschauen!
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.08.2011, 13:00     Titel:
  Antworten mit Zitat      
Das wäre dann so z.B....

Code:

function name = find_name(index)

switch index
     case 1
         Name = 'a';
     case 2
         Name = 'b';
     case 3
         Name = 'c';
     case 4
         Name = 'd';
end
 


jetzt rufst du einfach immer
Code:
name = find_name(index)
auf und hast dann in Name den Variablennamen stehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
a.meyer
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 01.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 13:04     Titel:
  Antworten mit Zitat      
danke!
ihr seid echt nett, am sonntag mittag mir so zu helfen!

werde das jetzt mal auprobieren, muss dann noch einbauen, dass die namen der variablen in vielen fällen anders sind, aber das kriege ich hin!

falls das wider erwarten nicht klappt, weiß ich ja, wo mir geholfen wird!

schönen sonntag noch!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.