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

mat datei auswählen und laden->plotten

 

xPashAx
Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 26.04.2010, 13:47     Titel: mat datei auswählen und laden->plotten
  Antworten mit Zitat      
hallo leute,
ich habe einige mat dateien die beinhalten messungen wie beschleunigung,geschwindigkeit,km-stand usw.
ich möchte mit gui vom verzeichnis eine mat datei (von vielen) auswählen können.
... danach möchte ich auswählen was geplottet wird zB geschwindigkeit-Zeit und beschleunigung-zeit oder geschwindigkeit-zeit und kmStand-zeit.

hab schon paar m-files geschrieben. da ich nochn anfänger bin habe ich immer erst die mat datei geladen (also durch doppelklick im verzeichnis) und danach mit m-file geplottet.
jedesmal das gleiche zu machen ist doof Smile
wer kann mir da weiter helfen.

ich bedank mich schon vorraus.
Private Nachricht senden Benutzer-Profile anzeigen


Shin
Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 26.04.2010, 14:03     Titel: Re: mat datei auswählen und laden->plotten
  Antworten mit Zitat      
xPashAx hat Folgendes geschrieben:
hallo leute,
ich habe einige mat dateien die beinhalten messungen wie beschleunigung,geschwindigkeit,km-stand usw.
ich möchte mit gui vom verzeichnis eine mat datei (von vielen) auswählen können.
... danach möchte ich auswählen was geplottet wird zB geschwindigkeit-Zeit und beschleunigung-zeit oder geschwindigkeit-zeit und kmStand-zeit.

hab schon paar m-files geschrieben. da ich nochn anfänger bin habe ich immer erst die mat datei geladen (also durch doppelklick im verzeichnis) und danach mit m-file geplottet.
jedesmal das gleiche zu machen ist doof Smile
wer kann mir da weiter helfen.

ich bedank mich schon vorraus.


Hey, sowas in der Art mache ich auch gerade (Themengebiet: Wasserbau).
Eine recht hilfreiche Funktion ist das hier:

Mit der listdlg Box kann der Benutzer eine Matfile auswählen und dann eine der beinhalteten Variablen auswählen - diese Variable/Struct kannst du dann für die Plots verwenden.

Code:
function loadselected(fname)
if nargin==0
   [fname pname] = uigetfile('*.mat','select MAT-file');
   if ~pname ; return ; end
   fname = fullfile(pname,fname);
end% if
var = whos('-file',fname);
[sel,ok] = listdlg('PromptString','Select a file:','ListString',{var.name});
if ok
   evalin('caller',sprintf('load %s %s',fname,sprintf('%s ',var(sel).name)))
   t = sprintf('%s ',var(sel).name);
end% if
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 26.04.2010, 14:11     Titel:
  Antworten mit Zitat      
sieht es dann so aus
Code:
% --- Executes on selection change in listbox1.
function listbox1_Callback(hObject, eventdata, handles)
% hObject    handle to listbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns listbox1 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from listbox1
function loadselected(fname)
if nargin==0
   [fname pname] = uigetfile('*.mat','select MAT-file');
   if ~pname ; return ; end
   fname = fullfile(pname,fname);
end% if
var = whos('-file',fname);
[sel,ok] = listdlg('PromptString','Select a file:','ListString',{var.name});
if ok
   evalin('caller',sprintf('load %s %s',fname,sprintf('%s ',var(sel).name)))
   t = sprintf('%s ',var(sel).name);
 

 
[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
Shin
Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 26.04.2010, 14:15     Titel:
  Antworten mit Zitat      
Hallo,
ich würde den Code in die Callback function eines Pushbuttons schreiben, dann wird die Auswahlprozedur gestartet, wenn du den Button drückst.
Du hast btw das
Code:
vergessen.
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 26.04.2010, 14:27     Titel:
  Antworten mit Zitat      
meinste so :
Code:

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

 
function loadselected(fname)
if nargin==0
   [fname pname] = uigetfile('*.mat','select MAT-file');
   if ~pname ; return ; end
   fname = fullfile(pname,fname);
end% if
var = whos('-file',fname);
[sel,ok] = listdlg('PromptString','Select a file:','ListString',{var.name});
if ok
   evalin('caller',sprintf('load %s %s',fname,sprintf('%s ',var(sel).name)))
   t = sprintf('%s ',var(sel).name);
end
 


mein lsitbox ist immer noch leer Sad[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
Shin
Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 26.04.2010, 14:31     Titel:
  Antworten mit Zitat      
Wenn du die Variablen in einer Listbox haben willst, schau dir den Thread mal an, da wird auch die von mir genannte Funktion erwähnt:
http://www.gomatlab.de/variablen-in-listbox-t1101.html
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 27.04.2010, 08:43     Titel:
  Antworten mit Zitat      
ok jetzt hab ich die mat dateien in meiner list box.
wie kann ich die markierte mat datei jetzt laden???

danach kann ich ja mit einem button mitm plotten anfangen.
jetzt weiss ich nur nicht wie man die ausgewählte mat datei ins workspace laden kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 27.04.2010, 10:31     Titel:
  Antworten mit Zitat      
mit get bekommst Du den Inhalt der Listbox.
Beispiel:
Code:

listBoxInhalt=get(handles.listbox,'String');

matfileInhalt = load(listBoxInhalt(1,:));
 


Gruß

Jose
_________________

Simulation

Zuletzt bearbeitet von josekamara am 27.04.2010, 11:21, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 27.04.2010, 10:56     Titel:
  Antworten mit Zitat      
wieso klappt es bei mir nicht Sad

Code:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

mat_files= dir(fullfile('C:\Work','*.mat'))
mat_files = {mat_files.name}
set(handles.listbox1,'String',mat_files,'Value',1);

 
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
listBoxInhalt=get(handles.listbox1,'String');

matfileInhalt = load(listbox1(1,:));
 
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 27.04.2010, 11:23     Titel:
  Antworten mit Zitat      
Sorry habe ich mich verschrieben. Schau bitte nochmal ins Code.
Benutze das Debugmodus um das Programm zu folgen.
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 27.04.2010, 11:29     Titel:
  Antworten mit Zitat      
jetzt hab ichs so, aber geht immer noch net.
Code:

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

mat_files= dir(fullfile('C:\murat\Work','*.mat'))
mat_files = {mat_files.name}
set(handles.listbox1,'String',mat_files,'Value',1);




% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
listBoxInhalt=get(handles.listbox1,'String');

matfileInhalt = load(listBoxInhalt(1,:));
 


hier noch die fehlermeldung

??? Error using ==> load
Argument must contain a string.

Error in ==> bspgui>pushbutton2_Callback at 119
matfileInhalt = load(listBoxInhalt(1,Smile);

Error in ==> gui_mainfcn at 96
feval(varargin{:});

Error in ==> bspgui at 42
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 27.04.2010, 11:47     Titel:
  Antworten mit Zitat      
kann mir da keiner helfen ? Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 27.04.2010, 14:04     Titel:
  Antworten mit Zitat      
?
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 27.04.2010, 14:40     Titel:
  Antworten mit Zitat      
Der Inhalt muss ein String sein. Wie schaut die Variable listBoxInhalt inhaltlich aus?
Ist es ein celle oder char?
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 27.04.2010, 17:23     Titel:
  Antworten mit Zitat      
die mat dateien enthalten beschleunigung,geschwindigkeit usw. das sind sozusagen die messergebnisse.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.