Hallo
habe dein Code angepasst, wie ich das meine,
in der OpeningFcn kann nach Checkboxen suchen, und da du diese auf UIPANELs aufteilst, kann man auch die Kategorien bestimmen.
Code:
handles.keypos = findobj(hObject,'Style','checkbox');
handles.keys = cell(1,length(handles.keypos));
% da du checkboxen auf UIPANELs aufgeteilt hast, % kann man die Kategorien über Zugehörigkeit rausfinden
parent = get(handles.keypos,'Parent');
parent = [parent{:}];
[dummy,dummy,handles.kat] = unique(parent);
Da du bereits die Checkboxen, nach Schlüßel benannt hast kann
man den Inhalt aus der Checkbox auslesen, und nur ein Callback für alle Checkboxen nutzen
Code:
function CheckBox_Callback(hObject,eventdata, handles)
keynumber = find(handles.keypos==hObject);
ifget(hObject,'Value')
handles.keys{keynumber } = get(hObject,'String');
else
handles.keys{keynumber } =[];
end
Wo du später die Schlüssel auswertest könnte ich nicht finden, wahrscheinlich in externen Scripten deshalb muss man irgendwie dass dann noch einbauen.
Ich würde EVALIN und ASSIGNIN abraten zu nutzen, besser, die Daten über Funktionskopf zu übergeben.
FilePath = uigetdir('C:\Dokumente und Einstellungen\AVB2T4N\Desktop\Mess-Files\KW_35_FA_PT6_Probanden_Voruntersuchung_3108_2012','Auswahl Datenordner');
list = dir(fullfile(FilePath,['*.*']));
list = {list(~[list.isdir]).name};
Erst mal ein riesen großes Dankeschön, für deine Mühe.
Habe zudem was du geschrieben hast noch ein paar Fragen.
Code:
handles.keypos = findobj(hObject,'Style','checkbox');
handles.keys = cell(1,length(handles.keypos));
% da du checkboxen auf UIPANELs aufgeteilt hast, % kann man die Kategorien über Zugehörigkeit rausfinden
parent = get(handles.keypos,'Parent');
parent = [parent{:}];
[dummy,dummy,handles.kat] = unique(parent);
muss das hier noch in die Gui-m-file ? oder muss ich das in mein script oben reinschreiben ? Ich vermute in das Script.
weil das hier gehört schon zu einem Script :
Code:
FilePath = uigetdir('C:\Dokumente und Einstellungen\AVB2T4N\Desktop\Mess-Files\KW_35_FA_PT6_Probanden_Voruntersuchung_3108_2012','Auswahl Datenordner');
list = dir(fullfile(FilePath,['*.*']));
list = {list(~[list.isdir]).name};
FilePath = uigetdir('C:\Dokumente und Einstellungen\AVB2T4N\Desktop\Mess-Files\KW_35_FA_PT6_Probanden_Voruntersuchung_3108_2012','Auswahl Datenordner');
list = dir(fullfile(FilePath,['*.*']));
list = {list(~[list.isdir]).name};
kriege ich einen Fehler: ??? Undefined function or variable 'keys'.
und beim checken der checkbox PGN : ??? Error using ==> feval
Undefined function or method 'PGN_Callback' for input arguments of type 'struct'.
diesen fehler
FilePath = uigetdir('C:\Dokumente und Einstellungen\AVB2T4N\Desktop\Mess-Files\KW_35_FA_PT6_Probanden_Voruntersuchung_3108_2012','Auswahl Datenordner');
list = dir(fullfile(FilePath,['*.*']));
list = {list(~[list.isdir]).name};
für was stehen die 2 dummys ? muss ich hier meine Panel namen eingeben ?
Das sind nur Platzhalter, also die Eingaben brauche ich nicht, seit Matlab 2009b kann ein Delta "~" Zeichen dafür nutzen.
Zitat:
muss das hier noch in die Gui-m-file ? oder muss ich das in mein script oben reinschreiben ? Ich vermute in das Script.
Ja das muss du in dein Script reinschreiben, die nötigen Variablen muss du dann in Workspace transferieren.
Möglich z.B über ASSIGNIN, aber besser ist eine Funktion zu defenieren und dann Eingaben über Funktionskopf übermitteln
Viel Erfolg
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.09.2012, 08:37
Titel:
Danke für die Antwort.
Die Variablen übergeben als key1....keyn oder als 'Tag' sowie es in den Properties steht?
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.09.2012, 11:51
Titel:
hab das jetzt so gemacht :
Code:
function CheckBox_Callback(hObject,eventdata, handles)
keynumber = find(handles.keypos==hObject);
ifget(hObject,'Value')
handles.keys{keynumber } = get(hObject,'String');
else
handles.keys{keynumber } =[];
end
%%%%%%%%%%%%%%%%%%%%%%%%
vars=whos for k=1:length(vars) assignin('base', vars(k).name, eval(vars(k).name)) end
%%%%%%%%%%%%%%%%%%%%%%%%
FilePath = uigetdir('C:\Dokumente und Einstellungen\AVB2T4N\Desktop\Mess-Files\KW_35_FA_PT6_Probanden_Voruntersuchung_3108_2012','Auswahl Datenordner');
list = dir(fullfile(FilePath,['*.*']));
list = {list(~[list.isdir]).name};
und beim checken der checkbox PGN : ??? Error using ==> feval
Undefined function or method 'PGN_Callback' for input arguments of type 'struct'.
diesen fehler
CALLBACK in GUIDATA anpassen, also von Nachbarn Checkbox, Callback kopieren
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.09.2012, 14:53
Titel:
Und ist das auch richtig so ?
Code:
names =list(all(pos,1)) ;
Data = cell(1, numel(names));
Richtig wenn du möchtest, dass alle Schlüssel vorkommen
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.09.2012, 15:08
Titel:
Ok jetzt funktioniert es das, dass was ich auswähle auch alles da bleibt.
Aber wenn ich jetzt aus einer Kategorie mehrere auswähle kommt diese Fehlermeldung : ??? Error using ==> and
Matrix dimensions must agree.
an dieser stelle:
pos =
any(pos(kat1,,2)&any(pos(kat2,,2)&any(pos(kat3,,2)&any(pos(kat4,,2);
und das Problem mit der Zielstruktur ist immer noch da. sie wird erzeugt aber mit nur einer file die auch nicht dem entpricht was ich gesucht habe.
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.09.2012, 15:10
Titel:
Sorry hab deinen post nicht gesehen werde es jetzt ausprobieren.
Danke
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.09.2012, 15:13
Titel:
Wie meinst du das,dass alle vorkommen in einem File-Name? (weil das will ich nicht...
wie gesagt will das ich a und b (beide aus der selben kategorie) checke und dann will ich auch alle files mit a haben und alle files mit b haben...
denny hat Folgendes geschrieben:
Ach so
stimmt habe einen Fehler bei Dimensionseingabe gemacht
so wäre das richtiger
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.