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

Innerhalb Matlab Excel öffnen und Wertebereich angeben.

 

M

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2014, 19:13     Titel: Innerhalb Matlab Excel öffnen und Wertebereich angeben.
  Antworten mit Zitat      
Hi,
verwende noch nicht all zu lannge Matlab und bin auf der Suche nach einer Funktion, die mir eine hinterlegte Exceltabelle öffnet und dann muss ich den Wertebereich auswählen welchen sie auslesen soll.

Aktuell mach ichs so, dass ich mir vorher den Wertebreich rausschreibe und dann überall in Matlab händisch eintippe und dass dauert ewig vor allem wenn es mehr als 3 Unterbrechungen gibt zwischen den Wertebereichen. Eine Änderung der Exceldatei kommt leider nicht in Frage.

Code:

titel = 'Messwerte.xls'

rangeP = 'C87:C98'
P = xlsread(titel,rangeP)

rangeQ = 'C99:C110'
Q = xlsread(titel,rangeQ)

rangeR= 'C135:C146'
R = xlsread(titel,rangeR)

rangeS= 'C52:C64'
S = xlsread(titel,rangeS)

P = [P;Q;R;S]


Kann mir da wer helfen?


Harald
Forum-Meister

Forum-Meister


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

Zitat:
einer Funktion, die mir eine hinterlegte Exceltabelle öffnet und dann muss ich den Wertebereich auswählen welchen sie auslesen soll.

... und was soll daran nun anders sein als an dem momentanen Prozess?

Was spricht dagegen, den gesamten Bereich in MATLAB einzulesen und dann den nicht benötigten zu entfernen?
Nach welchen Kriterien entscheidest du denn, welche Bereiche du haben möchtest?

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2014, 15:27     Titel:
  Antworten mit Zitat      
Problem ist, dass ich eine Exceltabelle von bestimmt 1000-3000 Einträgen bekomme. Davon sind aber nur immer manche Einträge relevant. Doch es dauert viel zu lange mir die alle rauszuschreiben. Also die Grenzen 'A10:A20'. Jetzt muss ich das natürlich nicht für eine Spalte machen sondern für 6-8. Wenn ich nun eine andere Excel Tabelle bekomme sind dort andere Einträge relevant und ich muss alle Bereiche ändern und zwar indem ich sie per Hand umschreibe.

Was ich suche ist ein Code der mir beim Öffnen die Exel öffnet. Dann sitze ich am Datensatz und die Felder markieren beispielsweise mit gehaltener Strg + Klick auf den eintrag. Am Ende soll er dann das ausgewählte in einen String schreiben und einlesen.
 
M

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2014, 15:30     Titel:
  Antworten mit Zitat      
Hauptproblem ist:

Es dauert viel zu lange alle Grenzen abzutippen! Ein auswählen und direkt einlesen würde die Arbeit deutlich schneller gestallten, da ich sowieso in der Exceltabelle die richtigen Einträge suchen muss.
 
M

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2014, 15:36     Titel:
  Antworten mit Zitat      
Sorry für die Einträge ich meld mich mal im Forum an...

Problem ist dass ich bevor ich Daten nicht gesehen habe nicht entscheiden kann welche relevant sind. Zum Teil sind fehlerhafte Einträge dabei oder auch Einträge die nicht eingelesen werden sollen bzw. nicht relevant sind für die aktuelle Berechnung die ich mache. Die Exceltabellen sind sehr mächtig. Habe mir schon überlegt die wichtigen in eine neue eExcel zu schreiben. Das große ABER ist dann dass es im Prinzip genausolange dauert sie auszuwählen zu kopieren und im Endeffekt dann den gesamten Bereich einzugeben da alle Daten die ich dann erhalte natürlich unterschiedlich lang sind.

Was anderes was vielleicht ein bisschen weiter helfen könnte wäre:
Kann man Excelzeilen einlesen indem man nur die Zeile eingibt ohne ein Anfang und ein Ende, es dürfen dann aber auch nur Zahlenwerte Eingelesen werden? Ich meine Excelzeilen sind ja unednlich lang... eine 0 oder NaN hilft mir nix.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.06.2014, 15:58     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Wenn ich nun eine andere Excel Tabelle bekomme sind dort andere Einträge relevant und ich muss alle Bereiche ändern und zwar indem ich sie per Hand umschreibe.

Nicht wenn du das automatisierst.

Zitat:
da ich sowieso in der Exceltabelle die richtigen Einträge suchen muss.

warum kannst du nicht stattdessen die richtigen Einträge im MATLAB-Import suchen?

Zitat:
Problem ist dass ich bevor ich Daten nicht gesehen habe nicht entscheiden kann welche relevant sind.

Wenn du diese Entscheidung aufgrund logischer Kriterien triffst (und davon würde ich doch ausgehen), dann kannst du sie ebensogut automatisiert durchführen lassen, über for-Schleifen oder natürlich noch besser: logische Indizierung.

Zitat:
Kann man Excelzeilen einlesen indem man nur die Zeile eingibt ohne ein Anfang und ein Ende, es dürfen dann aber auch nur Zahlenwerte Eingelesen werden?

Das macht xlsread an sich automatisch.

Zitat:
Ich meine Excelzeilen sind ja unednlich lang... eine 0 oder NaN hilft mir nix.

NaN oder 0 kann man gegebenenfalls über isnan und logische Indizierung herausfiltern.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2014, 16:37     Titel:
  Antworten mit Zitat      
Zitat:

Zitat:
Wenn ich nun eine andere Excel Tabelle bekomme sind dort andere Einträge relevant und ich muss alle Bereiche ändern und zwar indem ich sie per Hand umschreibe.

Nicht wenn du das automatisierst.

Naja die Automatisierung ist so ne Sache, ich muss mehrere Bereiche vergleichen ob gleiche Bedingungen gegeben sind. Eine Automatisierung würde wahrscheinlich den Aufwand überschreiten für die Arbeit.
Zitat:

Zitat:
da ich sowieso in der Exceltabelle die richtigen Einträge suchen muss.

warum kannst du nicht stattdessen die richtigen Einträge im MATLAB-Import suchen?

Wenn ich das richtig verstanden hab meinst du dass ich in dem "Vektor" innerhalb von Matlab die richtigen Einträge suchen soll? Wäre der selbe Spaß, würde mir keinen Vorteil zur jetzigen Situation verschaffen. Muss ja selbst wieder schauen was relevant ist und alle anderen Einträge innerhalb des "Vektors" löschen.
Zitat:

Zitat:
Problem ist dass ich bevor ich Daten nicht gesehen habe nicht entscheiden kann welche relevant sind.

Wenn du diese Entscheidung aufgrund logischer Kriterien triffst (und davon würde ich doch ausgehen), dann kannst du sie ebensogut automatisiert durchführen lassen, über for-Schleifen oder natürlich noch besser: logische Indizierung.


Naja logisch direkt ist das nicht. Ich schau welche Werte ungefähr gleich sind, dabei können schon Abweichungen entstehen. Problem ist wenn ich keine Daten finde die direkt zusammenpassen, dann muss ich in Kauf nehmen auf Werte zurückzugreifen welche nicht zueinander passen.
Zitat:

Zitat:
Kann man Excelzeilen einlesen indem man nur die Zeile eingibt ohne ein Anfang und ein Ende, es dürfen dann aber auch nur Zahlenwerte Eingelesen werden?

Das macht xlsread an sich automatisch.

Gut okay habs probiert, die Überschriften kann ich ja dann rausfiltern, Wohl wahr...

Ich denke es ist mal nicht möglich wie ich mir das wünsche, dass ich direkt den Input für Matlab über Excel vorgebe oder ähnliches. Vielleicht ist es möglich dass mit Excel bei einer Werteauswahl einen String zurück gibt, welchen ich dann direkt in den Matlabcode schreiben kann. Ich versuch das mal und sag dann mal bescheid. Gruß
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.06.2014, 17:01     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Wäre der selbe Spaß, würde mir keinen Vorteil zur jetzigen Situation verschaffen. Muss ja selbst wieder schauen was relevant ist

... nur dass du das dann nicht noch von Excel nach MATLAB übertragen musst.

Zitat:
Ich schau welche Werte ungefähr gleich sind, dabei können schon Abweichungen entstehen. Problem ist wenn ich keine Daten finde die direkt zusammenpassen, dann muss ich in Kauf nehmen auf Werte zurückzugreifen welche nicht zueinander passen.

... und genau diese Abfolge sollte MATLAB auch für dich machen können, wenn du das entsprechend programmierst.

Zitat:
Ich denke es ist mal nicht möglich wie ich mir das wünsche, dass ich direkt den Input für Matlab über Excel vorgebe oder ähnliches.

Was dem am nächsten kommt: Spreadsheet Link EX. Damit kannst du Bereiche in Excel markieren und in eine MATLAB-Sitzung schicken.

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 - 2024 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.