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 aus einer uitable auslesen

 

walde3685
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 20.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2013, 23:20     Titel: Werte aus einer uitable auslesen
  Antworten mit Zitat      
Hallo,

ich hab da eine Excel-Tabelle, aus der ich bestimmte Werte auslesen will (hab ich als Anhang zugefügt).

In meinem jetzigen Programm hab ich eine sehr lange if,elseif Schleife
Code:


if Entfernung < 100
    EntfernungskostenA = TarifeSpedA(1,:);
    EntfernungskostenB = TarifeSpedB(1,:);
    EntfernungskostenC = TarifeSpedC(1,:);
elseif Entfernung < 200 && Entfernung > 100
    EntfernungskostenA = TarifeSpedA(2,:);
    EntfernungskostenB = TarifeSpedB(2,:);
    EntfernungskostenC = TarifeSpedC(2,:);
elseif Entfernung < 300 && Entfernung > 200
    EntfernungskostenA = TarifeSpedA(3,:);
    EntfernungskostenB = TarifeSpedB(3,:);
    EntfernungskostenC = TarifeSpedC(3,:);

 


usw... die Abfrage läuft dann bis 1000. Und selbe Spiel nochmal mit einer if-Schleife in den einzelnen Zeilen.

In meinem Programm soll der Benutzer Gewicht und Entfernung eingeben und der richtige Wert soll ausgelesen werden.

Gibt es da vielleicht einen eleganteren Weg mein Problem zu lösen als mit einer if-Schleife. Hab schon überall gegoogelt. Jedoch ohne Ergebnis.

Vielen Dank
walde3685

tabelle.jpg
 Beschreibung:

Download
 Dateiname:  tabelle.jpg
 Dateigröße:  65.64 KB
 Heruntergeladen:  311 mal
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: 29.10.2013, 23:32     Titel:
  Antworten mit Zitat      
Hallo,

bitte einen aussagekräftigen Titel wählen. Mit uitables hat das ja wenig zu tun.

Vorschlag: etwas in der Art
Code:
idx = ceil(Entfernung/100);
EntfernungskostenA = TarifeSpedA(idx,:);
EntfernungskostenB = TarifeSpedB(idx,:);
EntfernungskostenC = TarifeSpedC(idx,:);


In den bisher aufgeführten Fällen wird übrigens Entfernung=100, Entfernung=200 usw. nicht abgedeckt, da du nur Fälle für < oder > hast. Da müsstest du ggf. meinen Vorschlag anpassen.

Natürlich wäre es auch schön, die A-C - Daten zusammenzufassen, beispielsweise in einer Struktur.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 20.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2013, 23:56     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

bitte einen aussagekräftigen Titel wählen. Mit uitables hat das ja wenig zu tun.


Hallo Harald,
das mit der uitable ist richtig, die hab ich in meiner GUI enthalten, ich konnte die hier im Forum irgendwie nicht richtig abbilden, deshalb hab ich eine Excel-Tabelle erstellt.

Zitat:

Vorschlag: etwas in der Art
Code:
idx = ceil(Entfernung/100);
EntfernungskostenA = TarifeSpedA(idx,:);
EntfernungskostenB = TarifeSpedB(idx,:);
EntfernungskostenC = TarifeSpedC(idx,:);


Ich kann Ihnen nicht so ganz folgen, wieso "ceil()", da wird doch der Wert aufgerundet?
Ich hab noch vergessen zu erwähnen, dass die Werte nicht immer 100,200,... sind. Es kann z.B. der Wert 144 eingegeben werden kann und der nächsthöhere Wert angenommen wird(in dem Fall 200)

Zitat:

Natürlich wäre es auch schön, die A-C - Daten zusammenzufassen, beispielsweise in einer Struktur.


Was genau meinst du mit 'A-C-Daten'?

Grüße,
walde3685
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: 30.10.2013, 00:15     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich kann Ihnen nicht so ganz folgen, wieso "ceil()", da wird doch der Wert aufgerundet?

Ist der Sinn der Sache.
0-99.999 --> Index 1
100-199.999 --> Index 2
usw.

Zitat:
Es kann z.B. der Wert 144 eingegeben werden kann und der nächsthöhere Wert angenommen wird(in dem Fall 200)

Das ist kein Problem, solange die Schwellwerte Vielfache von 100 sind.

Zitat:
Was genau meinst du mit 'A-C-Daten'?

TarifeSpedA, TarifeSpedB und TarifeSpedC bzw. die entsprechenden Entfernungskosten.

Grüße,
Harald
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.