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

Excel-Makro mit Matlab umsetzen

 

Laika_1988
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 04.12.14
Wohnort: Mannheim
Version: R2010b
     Beitrag Verfasst am: 04.12.2014, 16:38     Titel: Excel-Makro mit Matlab umsetzen
  Antworten mit Zitat      
Hallo,

ich schreibe derzeit meine Bachelorarbeit und soll mich mit VBA Programmierung rumärgern.
Jetzt stand die Frage im Raum, ob man dies auch komplett mit Matlab realisieren kann. Das ist meine Frage.

Wir haben einen Reihenmessplatz bei welchen Transistoren automatisch gemessen werden und die ermittelten Werte in eine csv-Datei speichert. Jetzt existiert ein Excel-Auswerteprogramm, welches eben diese Werte auswertet, als Übersicht darstellt und über Hyperlinks zu einer Extradatei mit den jeweiligen Kennlinien verlinkt.

Meine Frage, rein objektiv, ist, ob dies möglich wäre in Matlab umzusetzen ?
Als Beispiel habe ich gesehen, dass ich eine Ausgangskennlinie in 10 Zeilen haben kann, wo ich in VBA 1,5 Seiten Code brauche für.
Das schwierigste wird wohl sein die csv datei einzulesen und anzupassen und die grafische Oberfläche.
Ich habe mir da natürlich schon Gedanken gemacht.
Vielleicht könnte man ein C++ Plugin schreiben, welches die Zeilen als String einliest und anschließend in die einzelnen Variablen befördert zur weiteren Arbeit. Dieses C++ plugin binde ich dann in Matlab ein.

Grafische Oberfläche: Mmh, da weiß ich nicht so ganz.
Kann ich etwas in Qt schreiben und dass in Matlab einbinden ???
Ich brauche eine Übersicht mit den einzelnen Werten verschiedener Transistoren. Diese Werte müssen bei Klick auf die entsprechende Kennlinie verknüpfen.

Ist dies möglich ?

Ich hoffe, man versteht meine Gedankengänge und jemand kann mir einen Tipp geben.

Danke schonmal an der Stelle für alle Hinweise

Liebe Grüße
Laika
Private Nachricht senden Benutzer-Profile anzeigen


Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 04.12.2014, 16:45     Titel:
  Antworten mit Zitat      
Hi,

all das kannst du in Matlab umsetzen.

Unter GUI kannst du dir eine Graphische Oberfläsche erstellen und die einzelnen Buttons mit Skripte oder Funktionen verknüpfen.

Das einlesen und rausschreiben ist einfach und du brauchst keine C++ Plugins.

MATLAB --> ist TOP Very Happy

MfG,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
Laika_1988
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 04.12.14
Wohnort: Mannheim
Version: R2010b
     Beitrag Verfasst am: 04.12.2014, 16:52     Titel:
  Antworten mit Zitat      
Hallo Vito,

danke für die Antwort.
Das ist erstmal sehr erfreulich, sodass ich es dem Prof aufzeigen kann und kein VBA mehr machen muss. Ich finde vorallem, dass Matlab Betriebssystemunabhängig ist. Microsoft ist .... naja..

Was meinst du mit GUI ? Sprichst du da von Qt oder wie würdest du das machen ?

Ich brauche für das Einlesen kein C++ Plugin, wie würde es dann gehen ?

Viele Grüße
Laika

EDIT: Hab es gerade gesehen, es gibt ein spezielles Matlab GUI
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 04.12.2014, 17:00     Titel:
  Antworten mit Zitat      
Hi,

Was meinst du mit GUI ? Sprichst du da von Qt oder wie würdest du das machen ? --> GUI ist im Matlab drin, du braauchst keinen QT Wink

Ich brauche für das Einlesen kein C++ Plugin, wie würde es dann gehen ?
--> Dafür gibt es Funktionen in Matlab zum Einlesen von *.cvs



MfG,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 04.12.2014, 17:05     Titel:
  Antworten mit Zitat      
Hi,

gib im Commandfenster von Matlab den Befehl
Code:

Hiermit kannst du alles einlesen (oder fast alles Wink).

MfG,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
Laika_1988
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 04.12.14
Wohnort: Mannheim
Version: R2010b
     Beitrag Verfasst am: 04.12.2014, 17:09     Titel:
  Antworten mit Zitat      
Hallo Vito,

okay, also wenn ich nochmal kurz zusammenfassen darf:

Ich habe verschiedene csv. dateien mit sehr vielen Werten, welche durch TAB getrennt sind.

Wenn ich das Programm starte, muss ein dialogfenster kommen, in welchem ich die csv-datei auswählen kann (auch mehrere gleichzeitig) und anschließend den Ordner wählen kann, wo das Ergebnis abgespeichert werden soll. Ebenfalls kann ich über "Häkchen" auswählen, welche Kennlinien ich haben will und welche nicht.
Dann wird es berechnet und ich bekomme eine Übersicht aller errechneten und gemessenen Werte von Schwellspannung, Mobility etc. Diese einzelnen Werte sind jeweils verlinkt zu der entsprechenden Kennlinie.

Das kann ich alles ausschließlich mit Matlab realisieren ?

Ich weiß nicht, ob es geht, aber kann man das Ergebnis, also die Übersicht und alle Diagramme in pdf oder png speichernm dass ich nicht jedesmal das programm neu rechnen lassen muss ?

Liebe Grüße
Laika

EDIT: ich hab gesehen dass ich statt csvread mit tableread auch eine csv-datei, welche durch TAB getrennt ist, einlesen kann
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 04.12.2014, 17:40     Titel:
  Antworten mit Zitat      
Auch wenn ich im praktischen Leben Schritt für Schritt vorgehen würde, möchte ich die Vison weitertreiben: Warum die Daten denn überhaupt in MS Excel parken? Warum den Messplatz nicht gleich über MATLAB ansteuern?

Und noch ein Angebot: Wer ist den wohl freudig interessiert, dass so was gelingt? Genau, der Hersteller. Bitte einfach mal mich per PN oder Email kontaktieren.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


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

geht alles. Mit
Code:

anfangen und alles zusammenklicken. Vielleicht ein Tutorial durchgehen, um dir einen Überblick dazu zu verschaffen.

Zitat:
Ich habe verschiedene csv. dateien mit sehr vielen Werten, welche durch TAB getrennt sind.

Code:

Anzahl der Werte ist egal, solange es in den Speicher passt :)

Zitat:
in welchem ich die csv-datei auswählen kann (auch mehrere gleichzeitig)

Code:
[files, path] = uigetfile('*.csv', 'MultiSelect', 'on')

Das sieht am besten aus, wenn man es in einem Menü macht. (z.B. File --> Load)

Zitat:
Ordner wählen kann, wo das Ergebnis abgespeichert werden soll.

Code:


Zitat:
Ebenfalls kann ich über "Häkchen" auswählen, welche Kennlinien ich haben will und welche nicht.

Ist die Anzahl der Kennlinien von den gewählten Dateien abhängig oder nicht?
Falls ja, würde ich als handlichere Alternative eine Listbox vorschlagen.

Zitat:
die Übersicht und alle Diagramme in pdf oder png speichern

Z.B.
Code:


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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 04.12.14
Wohnort: Mannheim
Version: R2010b
     Beitrag Verfasst am: 04.12.2014, 17:57     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die ausführliche Antwort.

Zu deiner Frage mit den Häkchen:
Nein. ich kann mit den daten einer Datei alle Kennlinien berechnen und darstellen, aber ich will vllt nicht alle sehen. d.h. dann das diese nicht berechnet werden und es keine verlinkung gibt.
obwohl ich sagen muss, dass es bei matlab vllt sogar egal ist.
bei vba war es halt enormer rechenaufwand, sodass unterschieden werden musste.

Zu der GUI:
Ja, ich stelle mir halt vor, dass es so ähnlich aussieht, wie hier in excel es schon aussieht.
ich bekomm ein fenster, wo ich die datei oder die dateien auswähle und den zielordner. dann lade ich die und dann wird berechnet ud es öffnet sich ein neues fenster mit einer übersicht aller werte, welche verlinkt sind.

Ich kann bei bedarf gerne bilder hochladen, aber es ging ja in erster linie darum, ob und wie man es ganz grob realisieren kann, damit ich es meinem Prof zeigen kann.
So kann ich das auswerteprogramm in matlab umwandeln und muss nicht das bestehende erweitern in VBA Smile

Hallo Andreas,

Die ganze Geschichte mit dem Reihenmessplatz ist schon über 10 jahre alt.
die daten werden in einer csv datei eingelesen.
warum das so ist und ob es klug ist, daran kann ich nichts ändern.
ich mache ja nur meinen bachelor und soll das bestehende excel makro erweitern. aber der prof sieht auch die komplikationen, welche wir bereits durch die Versionen von Excel haben und findet die Idee mit Matlab nicht schlecht.

EDIT: Bilder vom jetzigen Excel Makro

bersicht.PNG
 Beschreibung:

Download
 Dateiname:  bersicht.PNG
 Dateigröße:  35.65 KB
 Heruntergeladen:  320 mal
Diagramme.PNG
 Beschreibung:

Download
 Dateiname:  Diagramme.PNG
 Dateigröße:  34.31 KB
 Heruntergeladen:  333 mal
CSV-Laden.PNG
 Beschreibung:

Download
 Dateiname:  CSV-Laden.PNG
 Dateigröße:  13.74 KB
 Heruntergeladen:  328 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Laika_1988
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 04.12.14
Wohnort: Mannheim
Version: R2010b
     Beitrag Verfasst am: 05.12.2014, 08:57     Titel:
  Antworten mit Zitat      
Hallo Harald,

Ich fürchte mit textscan kann ich das nicht machen, weil die daten nicht nacheinander liegen. Die liegen spaltenweise. Ich habe mal eine Beispiel csv datei angehangen.
Geht csvread ?

Und wie würde ich die Übersicht hinbekommen ?
Im beispiel bild sind alle, ich glaub, 16 csv dateien drin.
Wenn ich nur 3 reinmache, sollen die anderen felder entsprechend leer sein.

transistor.txt
 Beschreibung:

Download
 Dateiname:  transistor.txt
 Dateigröße:  238.33 KB
 Heruntergeladen:  774 mal

_________________

Was nicht fliegt, stürzt auch nicht ab !!!
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: 05.12.2014, 10:07     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich fürchte mit textscan kann ich das nicht machen, weil die daten nicht nacheinander liegen. Die liegen spaltenweise.

... und warum soll das ein Hinderungsgrund für die Verwendung von textscan sein?
Welche Daten brauchst du aus der Datei? Ab Zeile 12? Wie sollen neue Blöcke (z.B. Zeile 699) behandelt werden?

Zitat:
Geht csvread ?

Nein, weil csvread nur rein numerische Daten lesen kann. textscan ist deutlich flexibler.

Zitat:
Und wie würde ich die Übersicht hinbekommen ?

Z.B. als
Code:


Ich würde dazu raten, einfach mal loszulegen.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 04.12.14
Wohnort: Mannheim
Version: R2010b
     Beitrag Verfasst am: 05.12.2014, 10:15     Titel:
  Antworten mit Zitat      
Hallo Harald,

Damit müsste ich mich gezielt mit beschäftigen, falls ich es mir matlab machen kann.
Ich werde es ähnlich der Excel umgebung halten.
Also die zeilen 1 bis 12 sollen kopiert und in einer Übersicht ausgegeben werden.
Ab zeile 12 brauche ich nur die zahlenwerte, die namen kann ich ja selbst zuweisen.
Zeile 699 ist, soweit ich es gerade kurz gesehen habe, nur eine wiederholung von zeile 12, was genau da für werte stehen.
Das müsste also übersprungen werden.

Mmh, ich habe mich vorhin nur in csvread eingelesen.
Da kann ich ja direkt sagen, welche zellen er in das array einspeisen soll.
Für die ersten 12 zeilen brauch ich auf jeden fall textscan

Ich kann momentan noch nicht einfach loslegen, da ich erstmal ausführlich in Erfahrung bringen soll, ob es wirklich realisierbar ist und wenn ja, wie.
Ann bekomm ich das okay vom prof und darf anfangen
_________________

Was nicht fliegt, stürzt auch nicht ab !!!
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: 05.12.2014, 11:04     Titel:
  Antworten mit Zitat      
Hallo,

meiner Ansicht nach ist alles von dir genannte umsetzbar.
Natürlich wird man anfänglich ein wenig Aufwand hineinstecken müssen, aber die Excel-Lösung ist sicher auch nicht in 5 Minuten entstanden.

Es bietet sich m.E. hier auch an, mal den Kontakt mit Andreas Goser von MathWorks aufzunehmen.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 04.12.14
Wohnort: Mannheim
Version: R2010b
     Beitrag Verfasst am: 05.12.2014, 11:16     Titel:
  Antworten mit Zitat      
Hallo Harald,

Okay, dann werde ich es so meinem prof weitergeben.
Die exceldatei ist in 5 jahren entstanden.
Es soll eine bachelorarbeit werden, deswegen wusste ich nicht, ob ich das in der zeit schaffe ....

Herrn Goser habe ich schon kontaktiert
_________________

Was nicht fliegt, stürzt auch nicht ab !!!
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.