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

GUI_Mat_Files_Nach_Bestimmten_Namen_Inhalt_Suchen

 

denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.09.2012, 11:18     Titel:
  Antworten mit Zitat      
JaSoIstES hat Folgendes geschrieben:
Ja sorry habs auch grad gemerkt habs im code gändert und dann gepostet bei mir stand es vorher so da
Code:

key   ={key1,key2,key3}


aber dürfte ja eigentlich auch kein Problem sein oder ?

key1 bis key3 müssen in dem Fall Chars sein, keine Cells,
falls das doch Cell sind da so zusammensetzen:
key =[key1,key2,key3]



Um Fehler zu beheben, musst du dein Code noch weiter anpassen:
Code:

key   ={'PGN','Ibrahim','1400'}
list    = dir(fullfile(FilePath,['*.*']));
list    = {list(~[list.isdir]).name};

pos  = false(length(key),length(list)) ;
for k=1:length(key) ;
  tmppos = regexp(list,key{k}) ;
  pos(k,:) = ~cellfun('isempty',tmppos ) ;
end
names = list(all(pos,1)) ;

Data = cell(1, numel(names));

for i = 1:numel(names)
    Data{i} = load ('-mat', fullfile(FilePath, names{i}));  
end



Zitat:
Um den code "mintersect" zu benutzen habe ich mir gedacht das ich immer eine neue "list" erstelle bei den vorhandenen "schlüßelwörter"
und dann da durchlaufen lasse und er "sortiert" mir das dann aus.

wie sollte ich das dann da schreiben bzw. wie den funktions aufruf machen ?


einfach
Code:
list= mintersect(list1, list2, list3, list4, list5)
übergeben
Private Nachricht senden Benutzer-Profile anzeigen


JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2012, 12:33     Titel:
  Antworten mit Zitat      
Danke erst mal für deine Antwort.
er läuft jetzt ohne Fehler aber überspringt den Hauptteil meines Progs.

Code:

FilePath = uigetdir('C:\Dokumente und Einstellungen\AVB2T4N\Desktop\Mess-Files\KW_35_FA_PT6_Probanden_Voruntersuchung_3108_2012','Auswahl Datenordner');

key   ={'PGN','Ibrahim','Michael','1400'}
list    = dir(fullfile(FilePath,['*.*']));
list    = {list(~[list.isdir]).name};

pos  = false(length(key),length(list)) ;
for j=1:length(key) ;
  tmppos = regexp(list,key{j}) ;
  pos(j,:) = ~cellfun('isempty',tmppos ) ;
end
% list(all(pos,1));

% names = {list.name};
names =list(all(pos,1)) ;
Data = cell(1, numel(names));

    for i = 1:numel(names)
    Data{i} = load ('-mat', fullfile(FilePath, names{i}));  
    end
h=waitbar(0,'Please wait...');

for k=1:length(Data)
 
    waitbar(k/length(Data),h,[num2str((k*100)/length(Data)),'%'])
 
%Daten    

Soll_Mom_m = Data{:,k}.eTV_trqSollDiffMom;
Fehl_Mom_m = Data{:,k}.eTV_FTC_DiffMomManTimeValue;
Ist_Mom_HL_m = Data{:,k}.eTV_trqIstRadMomHL;
Ist_Mom_HR_m = Data{:,k}.eTV_trqIstRadMomHR;


omYr_m = Data{:,k}.eTV_omYrP*(180/pi);
ay_m=Data{:,k}.eTV_aAyP;
vVx_m=Data{:,k}.eTV_vVxP*3.6;
Lenk_m=Data{:,k}.eTV_radLenkrad*180/pi;




% omYr= omYr_m; %
% omYr_laenge =length(omYr_m);
PGN_SKF.names{k,1}=names{1,k};  

if min(Soll_Mom_m)< 0
    Soll_Mom_min=max(Soll_Mom_m);
    Fehl_Mom=min(Fehl_Mom_m);
    Soll_Mom=min(Soll_Mom_m);
    Ist_Mom_HL=min(Ist_Mom_HL_m);
    Ist_Mom_HR=max(Ist_Mom_HR_m);
   
else
    Soll_Mom_min=min(Soll_Mom_m);
    Fehl_Mom=max(Fehl_Mom_m);
    Soll_Mom=max(Soll_Mom_m);
    Ist_Mom_HL=max(Ist_Mom_HL_m);
    Ist_Mom_HR=min(Ist_Mom_HR_m);
end

%-------------------------Gierrate-Anfang----------------------------------

    omYrP= omYr_m;
    omYrP_laenge =length(omYr_m);

   PGN_SKF.omYrP(k,3)= (Soll_Mom); %Soll Diffmoment
   PGN_SKF.omYrP(k,1)= (Soll_Mom_min);%GrundMoment
   PGN_SKF.omYrP(k,6)= mean(omYrP(80:101)); %Start Mittelwert der Gierrate
   PGN_SKF.omYrP(k,8)=mean(omYrP(101:151));  % relevanter Max-Wert der Gierrate
%  PGN_SKF.omYrP(k,Cool=max(omYrP(101:401));  % relevanter Max-Wert der Gierrate
   PGN_SKF.omYrP(k,4)= (Ist_Mom_HL);
   PGN_SKF.omYrP(k,5)= (Ist_Mom_HR);
   PGN_SKF.omYrP(k,2)= (Fehl_Mom);
   
   
    for omYrPl = 1:omYrP_laenge
        if omYrP(omYrPl) == PGN_SKF.omYrP(k,8)

            PGN_SKF.omYrP(k,7) = omYrPl;

        end
    end
   
   
   
    PGN_SKF.omYrP(k,10)=min(omYrP(101:401));
       
    for m = 1:omYrP_laenge
        if omYrP(m) == PGN_SKF.omYrP(k,10)

            PGN_SKF.omYrP(k,9) = m;
 
        end
    end
   

%-------------------------Gierrate-Ende----------------------------------

%-------------------------Querbeschl-Anfang----------------------------------
aAyP= ay_m;
aAyP_laenge =length(ay_m);


   PGN_SKF.aAyP(k,3)= (Soll_Mom); %Soll Diffmoment
   PGN_SKF.aAyP(k,1)= (Soll_Mom_min);%GrundMoment
   PGN_SKF.aAyP(k,6)= mean(aAyP(80:101)); %Start Mittelwert Querbeschl
   PGN_SKF.aAyP(k,8)=mean(aAyP(101:151));
%     PGN_SKF.aAyP(k,Cool= max(aAyP(101:401)); %Max Wert der Querbschl.
   PGN_SKF.aAyP(k,4)= (Ist_Mom_HL);
   PGN_SKF.aAyP(k,5)= (Ist_Mom_HR);
   PGN_SKF.aAyP(k,2)= (Fehl_Mom);
   
    for ayl = 1:aAyP_laenge
        if aAyP(ayl) == PGN_SKF.aAyP(k,8)

            PGN_SKF.aAyP(k,7) = ayl;

        end
    end
   
   
   
    PGN_SKF.aAyP(k,10)=min(aAyP(101:401));
       
    for aym = 1:aAyP_laenge
        if aAyP(aym) == PGN_SKF.aAyP(k,10)

            PGN_SKF.aAyP(k,9) = aym;
 
        end
    end
   

%-------------------------Querbeschl-Ende----------------------------------


%-------------------------Geschw-Anfang----------------------------------
vVxP= vVx_m; %3.6*
vVxP_laenge =length(vVx_m);


   PGN_SKF.vVxP(k,3)= (Soll_Mom); %Soll Diffmoment
   PGN_SKF.vVxP(k,1)= (Soll_Mom_min);%GrundMoment
   PGN_SKF.vVxP(k,6)= mean(vVxP(80:101)); %Start Mittelwert der v
   PGN_SKF.vVxP(k,10)= mean(vVxP(101:301));
   PGN_SKF.vVxP(k,8)= max(vVxP(101:401));
   PGN_SKF.vVxP(k,4)= (Ist_Mom_HL);
   PGN_SKF.vVxP(k,5)= (Ist_Mom_HR);
   PGN_SKF.vVxP(k,2)= (Fehl_Mom);
   
   
   
    for vvl = 1:vVxP_laenge
        if vVxP(vvl) == PGN_SKF.vVxP(k,8)

            PGN_SKF.vVxP(k,7) = vvl;

        end
    end  

   
   
   
    PGN_SKF.vVxP(k,10)=min(vVxP(101:401));
       
    for vVx_m = 1:vVxP_laenge
        if vVxP(vVx_m) == PGN_SKF.vVxP(k,10)

            PGN_SKF.vVxP(k,9) = vVx_m;
 
        end
    end
   
%-------------------------Geschw-Ende----------------------------------
%
%
%-------------------------Lenkwinkel-Anfang----------------------------------
radLenkradP= Lenk_m; %(180/pi)*
radLenkradP_laenge =length(Lenk_m);


   PGN_SKF.radLenkradP(k,3)= (Soll_Mom); %Soll Diffmoment
   PGN_SKF.radLenkradP(k,1)= (Soll_Mom_min);%GrundMoment
   PGN_SKF.radLenkradP(k,6)= mean(radLenkradP(80:101)); %Start Mittelwert der Gierrate
   PGN_SKF.radLenkradP(k,8)=max(radLenkradP(101:401));
   PGN_SKF.radLenkradP(k,4)= (Ist_Mom_HL);
   PGN_SKF.radLenkradP(k,5)= (Ist_Mom_HR);
   PGN_SKF.radLenkradP(k,2)= (Fehl_Mom);
   
    for lel = 1:radLenkradP_laenge
        if radLenkradP(lel) == PGN_SKF.radLenkradP(k,8)

            PGN_SKF.radLenkradP(k,7) = lel;

        end
    end
   
   
   
    PGN_SKF.radLenkradP(k,10)=min(radLenkradP(101:401));
       
    for lem = 1:radLenkradP_laenge
        if radLenkradP(lem) == PGN_SKF.radLenkradP(k,10)

            PGN_SKF.radLenkradP(k,9) = lem;
 
        end
    end
   
%
%-------------------------Lenkwinkel-Ende----------------------------------


end
close(h)


wenn das Programm fertig ist müßte ermir ein struct ausgeben die PGN_SKF heisst tut er aber nicht mehr. er überspringt glaube ich 2 for schleifen.
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2012, 14:27     Titel:
  Antworten mit Zitat      
mit mintersect kriege ich das auch nicht hin.

da funktioniert es auchnur mit 2 cells.

wenn ich z.B.
list=mintersect(list1,list2,list3)

mache kriege ich : Empty cell array: 1-by-0

bei 2 funktioniert es aber auch nur 2 die nicht der selben "kategorie" angehören.

(01)PGN_Ibrahim_0Nm_1800Nm_GF_Manöver_7.mat
(02)PGN_Michael_0Nm_1200Nm_Oval_19_22.mat.

z.B. files mit dem inhalt: files mit dem nameninhalt 1800(list1) und files mit dem namen inhalt1200(list2)
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2012, 14:50     Titel:
  Antworten mit Zitat      
Ein Beispiel wie ich das auf papier oder manuell mit intersect lösen würde aber weiß nicht wie ich das mit einer Anzahl von 0-60 checkboxes mach da jede check box eine andere namens eigenschaft sucht.

im prinzip brauch ich eine "haupt"- Eigenschaften die alle nahmen enthalten
mit der ich dann arbeite.
list1 = Haupteigenschaft
list2 und list3 sind aus einer kategorie
list4 eine andere.
list5 eine andere.

Beispiel

A=intersect(list1,list2)
B=intersect(list1,list3)
C=intersect([A,B],list4)
D=intersect(C,list5)

und D nun das fertige cell mit dem daten die ich dann gerne weiterverarbeiten möchte.

nochmal meine Kategorien:
Kat.1: 2 Möglichkeiten
Kat.2: 25-30 Möglichkeiten
Kat.3: 6 (vll auch mehr) Möglichkeiten
Kat4.:3 Möglichkeit

und jede Möglichkeit erzeugt mir eine list die mit diesem Stichwort gesucht worden ist.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.09.2012, 15:52     Titel:
  Antworten mit Zitat      
Deshalb bekommst du ja keine Files, weil die Benutzung von MINTERSECT bedeutet, dass alle diese Schlüssel vorkommen müssen.
Und auch bei REGEXP habe ich so verfahren, also bitte hier klar stellen was erreicht werden soll.

Zitat:
Ein Beispiel wie ich das auf papier oder manuell mit intersect lösen würde aber weiß nicht wie ich das mit einer Anzahl von 0-60 checkboxes mach da jede check box eine andere namens eigenschaft sucht.


Da hast zu kompliziert gedacht, das ist schwer.
Du muss nach Gemeinsamkeiten suchen vllcht Checkboxen aufteilen:
auf Eigenschaft UND und Eigenschaft ODER, dann müssen Verknüpfungen überlegt werden:
Code:

key   ={'PGN','Ibrahim','Michael','1400'}
list    = dir(fullfile(FilePath,['*.*']));
list    = {list(~[list.isdir]).name};

pos  = false(length(key),length(list)) ;
for j=1:length(key) ;
  tmppos = regexp(list,key{j}) ;
  pos(j,:) = ~cellfun('isempty',tmppos ) ;
end
% list(all(pos,1));

% names = {list.name};

% Das meine ich unter Verknüpfungen
% Eigenschaft muss vorkommen, die andere können vorkommen
pos  = pos(1,:)& (pos(2,:)|pos(3,:)|pos(4,:)

names =list(pos) ;
Data = cell(1, numel(names));  
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoistEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2012, 13:24     Titel:
  Antworten mit Zitat      
Sorry konnte leider bis heute nicht mehr reinschauen.
Hab es mal so ausprobiert wie du es geschrieben hast denny.

Code:

key   ={'PGN','Ibrahim','Michael','1400'} ;
list    = dir(fullfile(FilePath,['*.*']));
list    = {list(~[list.isdir]).name};

pos  = false(length(key),length(list)) ;
for j=1:length(key) ;
  tmppos = regexp(list,key{j}) ;
  pos(j,:) = ~cellfun('isempty',tmppos ) ;
end

pos = pos(1,:)& (pos(2,:)|pos(3,:)) & (pos(4,:));
 


funktioniert prima, genau wie ich es haben möchte. Danke.

Ich habe ja wie gesagt 4 Kategorien mit unterschiedlich vielen checkboxen.
Wie bau ich das jetzt so flexibel zusammen ??

so wäre es glaube ich eine Variante:

pos=(Kat.1) & (Kat2) & (Kat3) & (Kat.4)

und innerhalb den Kategorien mach ich Oder-Verknüpfungen.

z.B.

pos=(a1|a2) & (b1|b2|b3|b4) usw.

es soll möglich sein nur 1 checkbox zu wählen oder alle (momentan) 13 checkboxen.

habe überlegt das mit dem befehl "eval" zu machen. bei bestimmten situationen die "pos" zusammenzustellen. Aber ich wüßte jetzt nicht wie ich das "gut" und einfach mti den verknüpfungen machen soll.
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2012, 15:24     Titel:
  Antworten mit Zitat      
das "key" hab jetzt so flexibel gemacht :

Code:

Status11=exist('key11');
Status12=exist('key12');
Status21=exist('key21');
Status22=exist('key22');
Status31=exist('key31');
Status32=exist('key32');
Status33=exist('key33');
Status34=exist('key34');
Status35=exist('key35');
Status36=exist('key36');
Status41=exist('key41');
Status42=exist('key42');
Status43=exist('key43');


keys=[];
keys=[keys,'key={']
% poss=[];
% poss=[poss,'pos]

if Status11==1
    keys=[keys,'key11',',']
end
if Status12==1
    keys=[keys,'key12',',']
end
if Status21==1
    keys=[keys,'key21',',']
end
if Status22==1
    keys=[keys,'key22',',']
end
if Status31==1
    keys=[keys,'key31',',']
end
if Status32==1
    keys=[keys,'key32',',']
end
if Status33==1
    keys=[keys,'key33',',']
end
if Status34==1
    keys=[keys,'key34',',']
end
if Status35==1
    keys=[keys,'key35',',']
end
if Status36==1
    keys=[keys,'key36',',']
end
if Status41==1
    keys=[keys,'key41',',']
end
if Status42==1
    keys=[keys,'key42',',']
end
if Status43==1
    keys=[keys,'key43',',']
end

keys(end)='}';
eval(keys)
 


danach kommt das :

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};

pos  = false(length(key),length(list)) ;
for j=1:length(key) ;
  tmppos = regexp(list,key{j}) ;
  pos(j,:) = ~cellfun('isempty',tmppos ) ;
end
 


und jetzt bräuchte ich diesen Teil, der auch flexibel sein sollte:

Code:

pos = pos(1,:)& (pos(2,:)|pos(3,:)) & (pos(4,:));
 
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.09.2012, 11:48     Titel:
  Antworten mit Zitat      
Hallo
besser gleich in CELLs/ARRAYs ablegen.
Dann wäre die Verwaltung minimaler.
Du hast doch Checkboxen?
Dann kann man in Property USERDDATA z.b. die Feldnummer ablegen.
Dadurch kann man nur ein Callback nutzen
Code:

function OpeningFcn(hObject, eventdata, handles, varargin)
handles.keys     = cell(1,60);

% Kategorien kann man als logische Array anlegen, wo 1 bedeuten würde
% dass an der Stelle  die Checkbox in dieser Kategorie liegt
handles.kat1     = false(1,60);  
handels.kat1(1:15)=true;
handles.kat2     = false(1,60);
handels.kat2(16:30)=true;
handles.kat3     = false(1,60);
handels.kat3(31:45)=true;
handles.kat4     = false(1,60);
handels.kat1(46:60)=true;

function CheckBox_Callback(hObject,eventdata, handles)
keynumber = get(hObject,'Userdata');
if get(hObject,'Value')
   handles.keys{keynumber } = get(handles.(sprintf('edit%d',keynumber )))
else
  handles.keys{keynumber }   =[];
end

 



später könnte dein Code dann so reduzieren

Code:

key      = handles.keys;
and_or  =  handles.and_or;
keypos = ~ cellfun('isempty', keys)
key       = keys(keypos)

kat1      = handles.kat1(keypos);  
kat2      = handles.kat2(keypos);
kat3      = handles.kat3(keypos);
kat4      = handles.kat4(keypos);


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};

pos  = false(length(key),length(list)) ;
for j=1:length(key) ;
  tmppos = regexp(list,key{j}) ;
  pos(j,:) = ~cellfun('isempty',tmppos ) ;
end

% pos = pos(1,:)& (pos(2,:)|pos(3,:)) & (pos(4,:));
pos = any(pos(kat1,:),2)&any(pos(kat2,:),2)&any(pos(kat3,:),2)&any(pos(kat4,:),2)

 
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.09.2012, 12:14     Titel:
  Antworten mit Zitat      
Hey denny danke für die Antwort.

Das habe (denke ich) verstanden =P.
Code:

function OpeningFcn(hObject, eventdata, handles, varargin)
handles.keys     = cell(1,60);

% Kategorien kann man als logische Array anlegen, wo 1 bedeuten würde
% dass an der Stelle  die Checkbox in dieser Kategorie liegt
handles.kat1     = false(1,60);  
handels.kat1(1:15)=true;
handles.kat2     = false(1,60);
handels.kat2(16:30)=true;
handles.kat3     = false(1,60);
handels.kat3(31:45)=true;
handles.kat4     = false(1,60);
handels.kat4(46:60)=true;
 


Aber hier nicht so ganz. Das füge ich jetzt in all meine "function Checkbox" ein ?
Wird die Keynumber automatisch hinzugefügt ? oder wie kann ich mir das hier vorstellen ?

Code:

function CheckBox_Callback(hObject,eventdata, handles)
keynumber = get(hObject,'Userdata');
if get(hObject,'Value')
   handles.keys{keynumber } = get(handles.(sprintf('edit%d',keynumber )))
else
  handles.keys{keynumber }   =[];
end

 


mein checkboxen sehen so aus :

Code:


function Michael_Callback(hObject, eventdata, handles)
% hObject    handle to Michael (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if (get(hObject,'Value') == get(hObject,'Max'))
key2 = 'Michael';
assignin('base','key2',key2);
else
   evalin('base','clear key2');
end

 
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.09.2012, 12:18     Titel:
  Antworten mit Zitat      
Oder wo ich schreibe ich den Inhalt der "keys" rein
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.09.2012, 12:47     Titel:
  Antworten mit Zitat      
JaSoIstEs hat Folgendes geschrieben:
Oder wo ich schreibe ich den Inhalt der "keys" rein

Wie hast du das bisher gemacht? Ich dachte du hast EDIT-Felder, wo man die Schlüssel eingeben kann?
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.09.2012, 12:57     Titel:
  Antworten mit Zitat      
Ne bis jetzt habe ich jedem "key" einen festen wert bzw. string zugeteilt.
Habe heute mit dem gedanken gespielt zusätzlich in jeder Kategorie ca. 2 checkboxes einzufügen die je nach belieben was eingefügt werden kann un dann dieser "key" erstellt wird.

Sorry fals da was missverstanden wurde.

So habe ich jetzt drin stehen :

Code:

function Ibrahim_Callback(hObject, eventdata, handles)
% hObject    handle to Ibrahim (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

if (get(hObject,'Value') == get(hObject,'Max'))
key2 = 'Ibrahim';
assignin('base','key2',key2);
else
   evalin('base','clear key2');
end


nur für 1 oder 2 kategoriern wäre es sinnvoll EDIT-Felder einzufügen.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.09.2012, 13:03     Titel:
  Antworten mit Zitat      
Hast du die Property TAG als Name den Schlüssel-Inhalt vergeben
wenn ja ,dann wäre folgendes Callback möglich

Code:

function CheckBox_Callback(hObject,eventdata, handles)
keynumber = get(hObject,'Userdata');
if get(hObject,'Value')
   handles.keys{keynumber } = get(hObject,'Tag')
else
  handles.keys{keynumber }   =[];
end

 
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.09.2012, 13:39     Titel:
  Antworten mit Zitat      
Sorry aber iwie bin ich jetzt total durcheinander.

Code:

function Neutest_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to Neutest (see VARARGIN)

% Choose default command line output for Neutest
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);
handles.keys     = cell(1,60);

% Kategorien kann man als logische Array anlegen, wo 1 bedeuten würde
% dass an der Stelle  die Checkbox in dieser Kategorie liegt
handles.kat1     = false(1,60);  
handels.kat1(1:15)=true;
handles.kat2     = false(1,60);
handels.kat2(16:30)=true;
handles.kat3     = false(1,60);
handels.kat3(31:45)=true;
handles.kat4     = false(1,60);
handels.kat4(46:60)=true;

% UIWAIT makes Neutest wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = Neutest_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in test.
function test_Callback(hObject, eventdata, handles)
% hObject    handle to test (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
keynumber = get(hObject,'Userdata');
if get(hObject,'Value')
   handles.keys{keynumber } = get(hObject,'Tag')
else
  handles.keys{keynumber }   =[];
end


% Hint: get(hObject,'Value') returns toggle state of test

 


hab jetzt einfach mal eine test gui erstellt, bei tag test reingeschrieben.

aber ich begreife gerade nicht wo z.B. wo der name des key hier angewendet wird oder wo ich die Variable drin habe. ich brauch ja jetzt iwas wie bei mir assignin('base'....). bei mir hab ich das ja verstanden aber hier blicke ich gerade nicht durch, sorry.
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.09.2012, 13:46     Titel:
  Antworten mit Zitat      
Hab dir einfach mal meine Gui m file und fig hochgeladen

damit du siehst wie es bei mir aussieht.

GUI_Skripte.fig
 Beschreibung:

Download
 Dateiname:  GUI_Skripte.fig
 Dateigröße:  7.77 KB
 Heruntergeladen:  331 mal
GUI_Skripte.m
 Beschreibung:

Download
 Dateiname:  GUI_Skripte.m
 Dateigröße:  14.28 KB
 Heruntergeladen:  330 mal
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6  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.