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

Daten aus Excelfile einlesen und neu definieren

 

newbie1090
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.10.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2017, 12:52     Titel: Daten aus Excelfile einlesen und neu definieren
  Antworten mit Zitat      
Guten Tag,

Problemstellung:
eine Exceltabelle soll mittels pushbutton der gui eingelesen werden (check)

jede einzelne Spaltenbenennung der 124 Messstellen (124 spalten) soll mittels popupmenu ausgewählt werden können (check)

die ausgewählte Spalte(nbenennung) im popupmenu soll nun eine neue (standardisierte) Benennung erhalten (meine idee wie man hier vorgehen könnte, wäre folgende:
ein zweites popupmenu erstellen, in welchem die standardisierten Benennungen ausgewählt werden können und zusätzlich einen neuen pushbutton, welcher die Umbenennung der beiden ausgewählten popummenu-Einträge durchführt (also die Benennung der ausgewählten Spalte der Exceltabelle wird mit dem neuen Namen der standardisierten Benennungen definiert -- siehe screenshot))

um im weitern Verlauf, nach Neudefinierung der Spaltennamen (Messstellen) diverse plots zu erstellen, müssen logischerweise die reiheneinträge jener Spalte (Messwerte) bei der Neubenennung "mitgenommen" werden, was zugleich meiner konkreten Frage entspricht.
also der neudefinierte Name bzw Messstelle soll einem Vektor mit eben neudefiniertem Namen und den Messwerten (262 Reihenwerten) entsprechen und alle neu definierten Vektoren bilden im Prinzip wieder annähernd die Matrix der Exceltabelle, allerdings mit eben neuer Benennung der Spalten und nur die mittels pushbutton neu defnierten Messtellen (vektoren) als Einträge.

wie gehe ich "am besten" vor?

mit dieser neuen Matrix könnte ich dann weiters den bereits geschriebenen und funktionierenden code zur Erstellung der gewünschten plots verwenden und es wäre mir immens geholfen.

die angehängten Scrennshots sollten die geschilderte Problemstellung weiters verdeutlichen, bzw bin ich gerne bereit Missverständnisse bezüglich meines Problems aufzuklären.

ich bedanke mich im voraus für jeden Lösungsansatz, Verlinkung zu ähnlicher Problemlösung, etc. und verbleibe.

MfG Manuel

scrennshot 3.jpg
 Beschreibung:
popupmenu der gewünschten neuen Benennugen (aktuell im property-manager des popupmenues im feld "String" eingetragen)

Download
 Dateiname:  scrennshot 3.jpg
 Dateigröße:  21.21 KB
 Heruntergeladen:  339 mal
screenshot 2.jpg
 Beschreibung:
popupmenu der spaltennamen der exceltabelle (jeweils 2 benennungen je messstelle)

Download
 Dateiname:  screenshot 2.jpg
 Dateigröße:  41.99 KB
 Heruntergeladen:  375 mal
screenshot 1.jpg
 Beschreibung:
Exceltabelle

Download
 Dateiname:  screenshot 1.jpg
 Dateigröße:  749.66 KB
 Heruntergeladen:  370 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 23.10.2017, 17:00     Titel: Re: Daten aus Excelfile einlesen und neu definieren
  Antworten mit Zitat      
Hallo newbie1090,

Ich kann Deiner Erklärung nicht folgen. Was bedeutet:
Zitat:
eine Exceltabelle soll mittels pushbutton der gui eingelesen werden (check)

Heißt "(check)", dass das Problem bereits erledigt ist? Dann erwähne es am besten erst gar nicht, denn es lenkt ab.

Zitat:
jede einzelne Spaltenbenennung der 124 Messstellen (124 spalten) soll mittels popupmenu ausgewählt werden können (check)

Siehe oben. Hier kommt noch dazu, dass nicht klar ist, was Du meinst. Was genau ist eine "Spaltenbenennung"? Kann man nur eine oder mehrere auswählen?

Zitat:
ein zweites popupmenu erstellen, in welchem die standardisierten Benennungen ausgewählt werden können und zusätzlich einen neuen pushbutton, welcher die Umbenennung der beiden ausgewählten popummenu-Einträge durchführt (also die Benennung der ausgewählten Spalte der Exceltabelle wird mit dem neuen Namen der standardisierten Benennungen definiert -- siehe screenshot))

Das ist sicher möglich.

Zitat:
um im weitern Verlauf, nach Neudefinierung der Spaltennamen (Messstellen) diverse plots zu erstellen, müssen logischerweise die reiheneinträge jener Spalte (Messwerte) bei der Neubenennung "mitgenommen" werden, was zugleich meiner konkreten Frage entspricht.

Was bedeutet "mitnehmen"? Was ist genau die konkrete Frage?

Zitat:
also der neudefinierte Name bzw Messstelle soll einem Vektor mit eben neudefiniertem Namen und den Messwerten (262 Reihenwerten) entsprechen und alle neu definierten Vektoren bilden im Prinzip wieder annähernd die Matrix der Exceltabelle, allerdings mit eben neuer Benennung der Spalten und nur die mittels pushbutton neu defnierten Messtellen (vektoren) als Einträge.


Du hast also eine Matrix und eine Liste mit Namen. Dann tauschst Du einzelne Namen aus. Ja, das geht. Weiterhin gibt es dann nichts zu tun, oder?

Ich erkenne also noch nicht, woran es hängt. Erkläre nochmal genauer - aber mit weniger Details.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
newbie1090
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.10.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2017, 00:01     Titel:
  Antworten mit Zitat      
Hallo Jan,

erstmal vielen Dank, dass du dir die Deit zum Lesen genommen hast!

Wenn es mir erlaubt ist, etwas auszschweifen.. es gibt 9 Motorprüfstände, jeder einzelne generiert etwas voneinander abweichende Exceltabellen aufgrund verschiedener Messeinrichtungen in Form anderer "Spaltenbenneungen",..

also bei Prüfstand 1 wird beispielsweise eine Temperatur (TKwA) mit einem anderen Sensor gemessen als vergleichsweise beim Prüfstand 4 und weist somit eine andere Benennung (PT100_..) in der Spalte der ermittelten Messwerte auf, oder wieder beispielsweise beim prüfstand 7 erst garnicht gemessen.
Ich hoffe es so verständlicher erklärt zu haben, was ich unter "Spaltenbenennung" meine, also im Scrennshot 1 wäre beispielsweise:

p_eff
effektive Leistung

eine 2-zeilige "Spaltenbenennung" und die Zahleneinträge darunter die gemessenen Werte (bei variierter Drehzahl, Drehmoment)


Um aber die Ergbnisse (in From von Muschelkennfeldern) der Prüfstandsmessungen zu standardisieren, sollen einheitliche Benennungen aller ermittelten Messwerte sich überlegt werden.

Ich habe mir überlegt, dies mit Hilfe von popupmenus zu realisieren.

Nachdem die gewünschte Exceltabelle mit dem obersten pushbutton eingelesen wird, im Workspace befinden sich nun:

colNames 2x124 cell
fileName 1x16 char
numbers 262x124 double

kann im linken popupmenu jede einzelnen Spaltenbenennungen (sowohl jene der ersten, als auch die Benennung in der zweiten Zeile) der Exceltabelle ausgewählt werden.. Screenshot 2

Hoffe nicht weiter abgelenkt zu haben, da ich bis hier her alles meinen Vorstellungen entsprechend bereits gecoded habe, ich aber doch der Meinung bin, dass diese Erklärung zum weiteren Verständnis meines Problems beiträgt..

Die weitere erwünschte Vorgehensweise des Programmbenutzer sieht wie folgt aus:

Alle Spaltenbenennungen (egal ob jene aus der ersten oder 2ten Zeile im popupmenü ausgewählt wird) sollen nun zu einer jeweiligen neuen Spalte mit neuer einzeiliger Benennung transformiert werden und zweckmäßig auch die dazugehörigen Zahlenwerte beinhalten.

also aus der Spalte der Exceltabell:

p_eff
effektive Leistung
0,8
1
2
5
..
.

möchte ich die neue Spalte

'Peff'
0,8
1
2
5
..
.

erstellen und schlussendlich die neue Tabelle mit den standardisierten neuen Benennungen der Spalten und den richtig zugehörigen Zahlenwerten.

Mein Lösungsansatz ist folgender:

erstellen eines weiteren popupmenüs mit eben einer Liste allen standardisierten Benennungen (scrennshot 3)

erstellen eines pushbuttons (redefine)

im linken popupmenü wird nun die SpaltenbenennungExcel (gesamte Spalte mit Zahlenwerten, das meine ich mit "mitnehmen") augewählt, im rechten die zuzuweisende neue Benennung.

per Klick auf den pushbutton wird aus der SpalteExcel die neue Spalte (wie oben geschildert) und abgespeichert.

dieser Schritt wird vom Anwender beleibig oft wiederholt, jenachdem welche Werte für die gewünschten Diagramme benötigt werden und somit in Summe die neue Tabelle erstellt, welche dann als Basis für die Muscheldiagramme dient.

ich hoffe nun verständlich genug mein Problem, eben die "Neuzuweisung mit "mitnahmen" der Zahlenwerte", erläutert zu haben.

MfG manuel
Private Nachricht senden Benutzer-Profile anzeigen
 
newbie1090
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.10.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2017, 17:00     Titel:
  Antworten mit Zitat      
Code:
function load_xlsfile_Callback(hObject, eventdata, handles)

handles.fileName = uigetfile('*.xls')
guidata(hObject, handles)
setPopUpMenuString(handles.popupmenu_colNames, eventdata, handles)

function setPopUpMenuString(hObject, eventdata, handles)

fileName = handles.fileName

[num, txt, raw] = xlsread(fileName)
assignin('base', 'num', num)
assignin('base', 'txt', txt)
assignin('base', 'raw', raw)

T = array2table(raw)
assignin('base', 'T', T)

[rows columns] = size(T)
assignin('base', 'rows', rows)
assignin('base', 'columns', columns)


set(hObject,'String',txt)
colNames = cellstr(get(hObject,'String'))
assignin('base', 'colNames', colNames)



% --- Executes on selection change in popupmenu_colNames.
function popupmenu_colNames_Callback(hObject, eventdata, handles)

contents = cellstr(get(hObject,'String'))
PopUp_Choice = contents{get(hObject,'Value')}

% --- Executes during object creation, after setting all properties.
function popupmenu_colNames_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


ist es hier möglich, dass bei der auswahl des popupmenüs, PopUp_Choice =.. mir den ausgewählten string und die numbs der spalte, in welcher dieser string in T geschrieben steht, als spaltenvektor "ausspuckt"?
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.