und bekomme nur in der 1.Zeite "Zeit" in der 1. Spalte angezeigt, die relevanten Spalten der 1.Zeile (hier steht: NameDatum), jedoch nur als NA, laut Matlab-Hilfe, liegt dies daran, das ich entweder num oder txt haben kann.
Die andere Idee war
Auch hier werden mir die Header nicht angezeigt.
Da ich in der Hilfe nicht fündig wurde die Frage: Mit welchen Befehl kann man mixed num text einlesen
Vielen Dank
hallo subotai. du hast doch bereits in anderen posts den raw teil eingelsen in denen sowohl zahlen als auch strings enthalten sind. was funktioniert damit nicht? ohne code der den fehler reproduziert und eine beispiel xls mit den angaben was du haben willst als gewünschten output wird dir nur schwer jemand helfen können.
_________________
Ja ich habe auch die 1.Zeile der Files erstellt.
Eingelesen von Matlab wird es, aber für eine Automatisierung muss ich den Spaltennamen auch indizierbar machen.
Mein Problem ist das zuordnen Spaltenname zur Spalte
(z.B. in Exel ist C der Name der Spalte C, hier wäre es für die 1Spalte Time; die 2. NameDatum1, 3. NameDatum2 etc.)
Ich habe es analog zu dem Code des automatischen einlesens versucht
Code:
%% Import the data
[~, ~, raw] = xlsread('name.xls','Tabelle1')% für 1Zeile aller Spalten [~, ~, raw2] = xlsread('name.xls','Tabelle1')% für die restliche Tabelle
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw2)) = {''};
So wie es da steht würde ich 1. Zeile i. Spalte eine ganze Spalte zuordnen das passt natürlich mit den Dimensionen nicht;
Was ich will: das hier der Name der in dr 1.Zeile der i.Spalte drin steht auf der linken Seite der Spalte der rechten Seite zugeordnet wird. Also das das das Ans = NameDatum da steht und nicht das raw.
Vielen Dank für jede Hilfe
PS. das sind nur fiktive Testwerte in den Spalten,darum sind diese pro Spalte gleich
[~, ~, raw] = xlsread('testmich.xls','Tabelle1')% für 1Zeile aller Spalten [~, ~, raw2] = xlsread('testmich.xls','Tabelle1')% für die restliche Tabelle
warum liest du es 2 mal ein. wenn du es doppelt brauchst ( was ich nicht glabe) gehts schneller eine kopie zu erstellen als 2 mal den activ x server zu starten.
woher sollen die namen kommen du hast sie doch extra durch nan ersetzt.
für mich siht das so aus als willst du am ande wieder die anfangs matrix erzeugen.
die namen sind alle in raw(1,2:end) enthalten. willst du nur die erste spalte rauswerfen oder wat?
_________________
Zitat:
Code:
[~, ~, raw] = xlsread('testmich.xls','Tabelle1') % für 1Zeile aller Spalten
[~, ~, raw2] = xlsread('testmich.xls','Tabelle1') % für die restliche Tabelle
Funktion ohne Link?
warum liest du es 2 mal ein. wenn du es doppelt brauchst ( was ich nicht glabe) gehts schneller eine kopie zu erstellen als 2 mal den activ x server zu starten.
ok das die Variante mit Kopie schneller ist,war mir noch unbekannt
Weil diese Zeile vom Import durch Matlab mir so ausgegeben wurde, da dachte ich das ich diese ebenso wie diese mit den Nan brauche - zb wenn bei mir in der Tabell fehlende Werte sein sollten.
Zitat:
woher sollen die namen kommen du hast sie doch extra durch nan ersetzt.
für mich siht das so aus als willst du am ande wieder die anfangs matrix erzeugen.
die namen sind alle in raw(1,2:end) enthalten. willst du nur die erste spalte rauswerfen oder wat?
Naja ich wollte automatisiert auf die 1. Spalte zugreifen.
z.B. diese nach dem Datum -wie in dem anderen Post - sortieren lassen.
nein
oder wilslt du eine variable erzeugen bei der der variablen name dem namen der ersten spalte entspricht ? wichtige daten umständlich im namen zu verstecken nicht gut.
_________________
an was ich scheitere ist die Verbindenung mit meinen Tabellen
Also 'Name11_01_2013' ist der Name von z.B Spalte 2, 'Name22_01_2013' von der Spalte 3 etc. D..h 'Name22_01_2013' steht in der Zelle raw(1,3)
Es muss also str=raw(1,2 bis Ende der Spalten) in die {}
Nur wenn ich das so reinschreibe kommt eben nicht NameDataum1 bis NameDatumENDE raus, sondern {1x1 cell}
Ich hoffe ich habe es jetzt besser erklären können.
Ja das hätte ich,
aber ich sehe jetzt doch noch ein Problem, das sortiert mir zwar ordentlich die Überschriften:) (also die 1.Zeile)
aber nicht die gesamte Spalte und ohne die NaN -Aktion von weiter oben- also das
Code:
[~, ~, raw2] = xlsread('testmich.xls','Tabelle1')% für die restliche Tabelle
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw2)) = {''};
funktioniert das Rechnen nicht mehr (also in Zeilen 2 bis end
Gibts da auch eine Möglichkeit dass es mir Spalten nach der Überschrrift sotiert -wie gerade erledigt- aber nicht den Bezug zu den folgenden Zeilen verliert?
du musst mit sort den index ermitteln und dann mittels forschleife selber die spalten neu anordnen so würde ich es jedenfalls machen.
_________________
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
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.