ich möchte mittels plot-Befehl das Datum (x-Achse) über die Temperatur (y-Achse) darstellen. Ich lese aus einer Excel-Datei die entsprechenden Werte aus und übergebe diese jeweils einer Variable.
Die Variable in der die Daten stehen ist vom Typ cell. Die Werte für die Temperatur sind vom Typ double.
Wenn ich den plot-Befehl ausführen möchte, erhalte ich die Fehlermeldung, dass eine Umwandlung von cell in double nicht möglich sei.
Wie kann ich eine der beiden Variablen umformen, dass ich trotzdem mein Diagramm ploten kann.
Code:
function plot_Callback(hObject, eventdata, handles)
A=get(handles.Zeit,('String'));
[num,datum,text2]=xlsread(A); % num Temp Werte, %Datum die Zeit set(plot(datum,num),axes1)
Du müsstest noch ein Beispiel mit echten Daten zeigen, damit man eine Lösung finden kann. Wenn das Datum lautet:
"{'Ein Tag nach Weihnachten, als meine Oma noch in Limburg wohnte, mittags'}", dann wird das nicht so einfach werden ;-)
Im allgemeinen kann aber DATENUM ein Datum in eine Zahl umwandeln. Wahrscheinlich ist dann auch der Befehl DATETICK für Dich interessant.
hallo,
danke für schnelle Antwort
ich möchte einfach plot-Befehl das Datum (x-Achse) über die Temperatur (y-Achse) darstellen.
24.11.2008 14:25:41 -0.000402
24.11.2008 14:25:42 -0.000402
24.11.2008 14:25:43 -0.000402
24.11.2008 14:25:44 -0.000402
24.11.2008 14:25:45 -0.000402
24.11.2008 14:25:46 -0.000502
vielen dank
Tausend Dank Harald,
danke hat funktioniert,aber da ich mehrer datein habe, jeden liegt ein Messung vor,möchte ich das ganze gleichzeitig ploten.jeden Tag ist ein Messung in ein xls datei.
meine Proplem ist mehere Dateien gleichzeitig ploten
ich habe für jeden Tag ein Messung (jedentag ist ein datei z.B 10.10.2010)
dann ,wenn ich einfach in mein Gui 10.10.2010.xls eintipen wird meine kurve gezeiget.
da die Dateien name 10.10.2010 liegt in meine Ordner.
ich will jetzt meine ganze mehrere Dateien, die in meine Ordner gleichzeig ploten???
meine Datein sind mit Zeit gennant. also Tem zu Zeit jeden datei ist ein kurzezeitmessung.
ich werde sehr dankbar ,wenn Jemend ein Idee hat
dank
hallo Harald,
bitte verzeih mir , ich bin anfinger
es hat leider nicht geklapt, da ich muss jedes mal die Datei Name eintippen im GUI, ich will aber die Dateien auf einmal mit ein klick ploten,
und zwar: als peispiel
den 10.02.2009 bis 25.02.2009 B.Z( Die DateiName 10.02.2009.xls bis Dateiname 25.02.2009.xls) ploten möchte ,damit siehe wie hoch waren die Temperaturzahlen in diese Tagen.oder im ganz Jahr als beispiel.
wie gesagt die Dateien sind sortiert auf DatumDateienNamen
und Pro Tag ein Datei.
10.02.2009.xls
11.02.2009.xls
12.02.2009.xls
.....
....
.wie kann ich bestimmte Zeitraum von - bis auf ein mal ploten
Vielen dank für die Hilfe.
Code:
% --- Executes on button press in plot. function plot_Callback(hObject, eventdata, handles) % hObject handle to plot (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
A=get(handles.Zeit,('String'));
liste = dir('*.xls');
for I=1:length(liste) % Import und Verarbeitung mit liste(I).name hold on
Hallo,
ich bin leider ein absoluter MatLab-Neuling und stehe vor einem für mich im Moment unlösbaren Problem. mit diese code kann ich meine .xls dataeien abrufen.
liste = dir(fullfile(uigetdir('','liste'),'*.xls'));
aber nicht ploten kann, die datein sind in ordner sortiert auf datum:10.02.2009.xls
11.02.2009.xls
12.02.2009.xls
.....
ich will im Gui Zeitbereich abgeben z.b von 12.02.2009 bis 16.02.2009 ,dann muss diese dauer den entsprechenden Graph gezeigt.
hier noch meine code :
Code:
% --- Executes on button press in plot. function plot_Callback(hObject, eventdata, handles) % hObject handle to plot (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
A=get(handles.Zeit,('String'));
edit by denny: Hallo jonas, kannst du bitte dein Code richtig zwischen den Klammer [ code ] [ /code ] einbetten. Falls was schief läuft kannst du dein Beitrag auch nachträglich editieren. Danke!
Es wäre viel leichter, Dir zu helfen, wenn Du mit den nötigen Details beschreiben würdest, was nicht funktioniert. Läuft das Programm, das Du gepostet hast?
Zitat:
aber nicht ploten kann, ...
Das ist nicht genau genug, um Dir wirklich helfen zu können.
Bitte poste Code innerhalb einer "Code-Umgebung":
[ c o d e ] ... [ / c o d e ] (ohne Leerzeichen!)
Und ganz allgemein ist anzuraten ein Problem nach dem anderen zu lösen. Also zuerst die Files einlesen, bis es funktioniert. Danach kannst Du Dich auf das Plotten konzentrieren - und in den Fragen den Teil zum Einlesen der Daten weglassen, damit die Leser weniger abgelenkt order verwirrt werden.
Hallo Jan ,
ich habe viele .xls Dateien,jeden Tag liegt ein datei vor ,und Sind mit Datum genanant 20.02.2010,21.02.2010,usw .1- Spalte Zeit in Form 'dd.mm.yyyy HH:MM:SS' und 2-Spalte Tem.
ich kann jede Datei mit dem code ploten.das funktionert wunderbar.
Code:
% --- Executes on button press in plot. function plot_Callback(hObject, eventdata, handles) % hObject handle to plot (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
A=get(handles.Zeit,('String'));
[num, txt] = xlsread(A);
data = str2double(txt(:,2));
dates = datenum(txt(:,1), 'dd.mm.yyyy HH:MM:SS');
plot(dates,data(:,1)) datetick xlabel('Datum');
ylabel('Tem')
ich habe jetzt ein Weiterknopf im Gui, mit dem möchte ich die nächste Datei Automatisch ploten.
als beispiel plot 20.02.2010 ,und dann weiterknopf Drüken ,dann muss die nächste Datei das wäre dann 21.02.2010 auch dazu gezeichnet usw......
ich wäre sehr dankbar,wenn Jemend mir den Code schreiben kann.[/code]
Sersen,
da heute Weihneachten ist versuch mal meine angehängten sachen. Anstatt einem pb ist ne Listbox eingefügt womit du dann bei mehreren Dateien vor und zurück schalten kannst. Natürlich geht nicht alles ist halt nur ein Beispiel...einfach mal Testen...
Viel Spass damit und frohe Weihnachten
MfG Marco
Edit: ja ich weiß die waitbar ist ein bisl blöd integriert...
hallo Marco,
ich danke dir Sehr,das war das beste Weihnachten G.alles wunderbar funktioniert, alerdings , ich möchte Z.b 10 Dateien(die Dateien sind im Listbox sortiert) auf einmal ploten ,wie kann ich diese dateien auf einmal markieren bzw ploten lassen. oder die ganze dateien auf einmal.
ich habe Versucht mit ein Weiterbuton ,aber leider hat ergendwie nicht funktioniert ,und hier ist ein Beispiel cod für Weiterbuton oder Interwalzeitbuton.
Code:
% --- Executes during object creation, after setting all properties. function ZEITINTERVALL_CreateFcn(hObject, eventdata, handles) % hObject handle to ZEITINTERVALL (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
% --- Executes on button press in WEITER. function WEITER_Callback(hObject, eventdata, handles) % hObject handle to WEITER (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%Zeit/Datum-Variablen werden aus dem Workspace geholt
DT = evalin('base','rowheaders');
%Datum, Zeit in serieller darstellung
DT_seriell=datenum(DT,'dd.mm.yyyy HH:MM:SS');
xData=DT_seriell;
minT=min(xData);
%Zeitzähler + T
T=str2double(get(handles.text2,'String'));
maxT=get(handles.ENDZEIT,'String');
maxT=datenum(maxT,'dd.mm.yyyy HH:MM:SS');
maxT=addtodate(maxT,T,'hour');
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.