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

spezielle Daten nach Datenabgleich aus Excelsheet holen

 

Quinn
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 08.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2014, 18:56     Titel: spezielle Daten nach Datenabgleich aus Excelsheet holen
  Antworten mit Zitat      
Hallo ihr Lieben!

Ich habe folgenden Plan:

Ich habe eine Exceldatei erstellt mit 2 Spalten.
In der ersten steht der Druck ( nur ganze Zahlen) und in der Zweiten ein dazugehöriger Wert.

Ich bekomme durch mein Programm einen Ausgabewert, einen Druck. Diesen möchte ich mit round runden und dann in dem Excelsheet nach diesem Wert in der ersten Spalte suchen und dann den zugehörigen Wert auslesen um ihn dann in meinem Programm zu verwenden.

Ich kenne den Befehl xlsread, aber ich weiß nicht wie ich hier vorgehen soll..

Habt ihr ein Tipp für mich?
Ich dachte ich könnte jede Zeile der ersten Spalte mit "if" vergleichen und dann bräuchte ich aber den Wert der Zeilenanzahl um mit diesem den Wert aus der weiten Spalte zu lesen..
Wie ich den bekomme? Ob das eine sinnvolle Vorgehensweise ist?

Danke Euch und viele Grüße!
Quinn
Private Nachricht senden Benutzer-Profile anzeigen


Quinn
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 08.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2014, 18:59     Titel: Wert in Excelfile suchen und zugehörigen Wert auslesen
  Antworten mit Zitat      
Quinn hat Folgendes geschrieben:
Hallo ihr Lieben!

Ich habe folgenden Plan:

Ich habe eine Exceldatei erstellt mit 2 Spalten.
In der ersten steht der Druck ( nur ganze Zahlen) und in der Zweiten ein dazugehöriger Wert.

Ich bekomme durch mein Programm einen Ausgabewert, einen Druck. Diesen möchte ich mit round runden und dann in dem Excelsheet nach diesem Wert in der ersten Spalte suchen und dann den zugehörigen Wert auslesen um ihn dann in meinem Programm zu verwenden.

Ich kenne den Befehl xlsread, aber ich weiß nicht wie ich hier vorgehen soll..

Habt ihr ein Tipp für mich?
Ich dachte ich könnte jede Zeile der ersten Spalte mit "if" vergleichen und dann bräuchte ich aber den Wert der Zeilenanzahl um mit diesem den Wert aus der weiten Spalte zu lesen..
Wie ich den bekomme? Ob das eine sinnvolle Vorgehensweise ist?

Danke Euch und viele Grüße!
Quinn
Private Nachricht senden Benutzer-Profile anzeigen
 
markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 27.05.2014, 20:00     Titel: Re: spezielle Daten nach Datenabgleich aus Excelsheet holen
  Antworten mit Zitat      
Quinn hat Folgendes geschrieben:

Ich bekomme durch mein Programm einen Ausgabewert, einen Druck. Diesen möchte ich mit round runden und dann in dem Excelsheet nach diesem Wert in der ersten Spalte suchen und dann den zugehörigen Wert auslesen um ihn dann in meinem Programm zu verwenden.

Das geht nicht (zumind. nicht ohne gewaltigen Aufwand wenn man mit der COM Schnittstelle rumhampelt). Excel ist keine Datenbank! (Dort könntest du ohne probleme zum Beispiel "SELECT dazugehoerigerwert FROM tabelle1 where Druck=5" abfeuern und bekommst den gesuchten Wert, ohne alle Daten einlesen zu müssen). Du kannst nur nach Werten suchen, wenn du die Datei in den Matlab Workspace eingelesen hast

Quinn hat Folgendes geschrieben:

Ich kenne den Befehl xlsread, aber ich weiß nicht wie ich hier vorgehen soll..


Sofern deine Excel Tabelle wirklich nur aus zwei Spalten besteht

Code:

>> %% als beispiel
>> m=[3 0.309146828739488;6 0.566485960078984;9 0.256361358032778;12 0.753330697269569;15 0.37337935814191;18 0.96197654106745;21 0.177879141674269;24 0.255718540157455;27 0.617807429312963;30 0.296432620576676];
m =

    3.00000    0.30915
    6.00000    0.56649
    9.00000    0.25636
   12.00000    0.75333
   15.00000    0.37338
   18.00000    0.96198
   21.00000    0.17788
   24.00000    0.25572
   27.00000    0.61781
   30.00000    0.29643

>> %% bzw
>> %% m=xlsread('deinedatei.xlsx');
>>
>>% nun willst du den Wert (Spalte 2) zu dem Druck 9 bar (aus Spalte 1) haben
>> wert=m(m(:,1)==9,2)
wert =  0.25636
>> %% oder für 27 bar
>> wert=m(m(:,1)==27,2)
wert =  0.61781

 

_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
Private Nachricht senden Benutzer-Profile anzeigen
 
Quinn
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 08.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.05.2014, 21:04     Titel:
  Antworten mit Zitat      
Hi! Vielen Dank für deine Nachricht und deine Tipps.
So wie du vorgeschlagen hast, werde ich es versuchen. So viele Werte sind es nicht und das andere scheint ja wirkich unverhältnismäßig kompliziert! Danke, dass du mir das gesagt hast! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 29.05.2014, 21:17     Titel:
  Antworten mit Zitat      
Quinn hat Folgendes geschrieben:
Hi! Vielen Dank für deine Nachricht und deine Tipps.
So wie du vorgeschlagen hast, werde ich es versuchen. So viele Werte sind es nicht und das andere scheint ja wirkich unverhältnismäßig kompliziert! Danke, dass du mir das gesagt hast! Smile


Um das klar zu stellen. "Sofern Deine Excel Datei nur 2 Spalten hat" ... damit bezog ich mich auf den Vorschlag und den Indizes in wert=m(m(:,1)==9,2)

Du kannst natürlich auch viel mehr Spalten in Deinem Excel-Sheet/Deiner Matrix haben.
_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
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.