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

 

JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2012, 15:39     Titel:
  Antworten mit Zitat      
kat1: ab
kat2: cd
kat3: ef
kat4: gh

wenn ich wähle beispielsweise : a c e g ----> dann sollen alle 4 vorkommen
wenn ich wähle beispielsweise : a c (e f) g ------>dann sollen a c e g
a c f g
gefunden werden


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 27.09.2012, 16:17     Titel:
  Antworten mit Zitat      
Zitat:
kat1: ab
kat2: cd
kat3: ef
kat4: gh

wenn ich wähle beispielsweise : a c e g ----> dann sollen alle 4 vorkommen
wenn ich wähle beispielsweise : a c (e f) g ------>dann sollen a c e g
a c f g
gefunden werden


Hallo

das habe ich ja verstanden
das tut dieser Konstrukt ja bereits:
Code:

pos = any(pos(kat1,:),1)&any(pos(kat2,:),1)&any(pos(kat3,:),1)&any(pos(kat4,:),1);  
 
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2012, 16:39     Titel:
  Antworten mit Zitat      
also kann ich das dann so lassen ??
Mein Script(-anfang):
Code:


key       =  handles.keys;

keypos    = ~ cellfun('isempty', key);
key       = key(keypos);

kat1      = handles.kat==1;  
kat2      = handles.kat==2;
kat3      = handles.kat==3;
kat4      = handles.kat==4;

kat1      = kat1(keypos);
kat2      = kat2(keypos);
kat3      = kat3(keypos);
kat4      = 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 = any(pos(kat1,:),1)&any(pos(kat2,:),1)&any(pos(kat3,:),1)&any(pos(kat4,:),1);  

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

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2012, 08:51     Titel:
  Antworten mit Zitat      
Hier noch mal meine Gui vielleicht hab ich hier noch was falsch drin....
weil iwie funktioniert es noch nicht so ganz aber vermute das es am script liegt.

GUI_Skripte.m
 Beschreibung:

Download
 Dateiname:  GUI_Skripte.m
 Dateigröße:  15.76 KB
 Heruntergeladen:  330 mal
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.09.2012, 12:02     Titel:
  Antworten mit Zitat      
Hallo

GUIDATA brauchst du in Pushbutton Callback nicht, da du ja dort die handles nicht veränderst.
Außerdem brauchst du doch nicht alle Variablen zu transferieren, nur handles wird doch benötigt.

GUI_Skripte.fig
 Beschreibung:

Download
 Dateiname:  GUI_Skripte.fig
 Dateigröße:  10.46 KB
 Heruntergeladen:  315 mal
GUI_Skripte.m
 Beschreibung:

Download
 Dateiname:  GUI_Skripte.m
 Dateigröße:  15.75 KB
 Heruntergeladen:  330 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2012, 13:09     Titel:
  Antworten mit Zitat      
ok aber wenn ich dann die datei im Workspace haben möchte

dann setze ich das doch nach dem aufruf des skriptes dran ?:
Code:
assignin('Base','blabla',blabla)


und was ist damit ? ist da alles in ordnung ?

Code:


key       =  handles.keys;

keypos    = ~ cellfun('isempty', key);
key       = key(keypos);

kat1      = handles.kat==1;  
kat2      = handles.kat==2;
kat3      = handles.kat==3;
kat4      = handles.kat==4;

kat1      = kat1(keypos);
kat2      = kat2(keypos);
kat3      = kat3(keypos);
kat4      = 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 = any(pos(kat1,:),1)&any(pos(kat2,:),1)&any(pos(kat3,:),1)&any(pos(kat4,:),1);  
%%%%%%%%%%%%%%%%%%%%% ab hier...
names =list(pos) ;
Data = cell(1, numel(names));  

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2012, 13:16     Titel:
  Antworten mit Zitat      
das script

überspringt diesen Teil :

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


Confused
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.09.2012, 13:58     Titel:
  Antworten mit Zitat      
Hallo
auf den ersten Blick sind richtig aus.
Ich kann ohne Daten das schwer reproduzieren

kannst du bitte den Inhalt der pos Variablen posten
und zwar nach

Code:

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


und dann nach

Code:

pos = any(pos(kat1,:),1)&any(pos(kat2,:),1)&any(pos(kat3,:),1)&any(pos(kat4,:),1);  
 
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.09.2012, 14:22     Titel:
  Antworten mit Zitat      
Hallo

Wie viele Checkboxen wählst aus, welche Kategorien?
habe jetzt für mich selbst kleine Stichprobe erzeugt, und habe festgestellt dass überall muss wenigstens eine Checkbox aktiviert sein, dann funktioniert
ich habe an diesen Files ausprobiert und folgende Checkboxen aktiviert
'Michael' 'Ibrahim' 'SKF' 'PGN' '1800':

Zitat:
'PGN_Ibrahim_0Nm_-1400Nm_GF_Manöver13_16.mat'
'PGN_Ibrahim_0Nm_1400Nm_Oval_19_22.mat'
'PGN_Ibrahim_0Nm_1800Nm_SKF_5_6.mat'
'PGN_Michael_0Nm_-1800Nm_SKF_1_3.mat'
'PGN_Michael_0Nm_1200Nm_Oval_19_22.mat'
'PGN_Michael_0Nm_1800Nm_GF_7.mat'


Dann werden wie erwartet 2 Files geladen.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.09.2012, 14:33     Titel:
  Antworten mit Zitat      
Hallo

also hier ist die Lösung, welche du wahrscheinlich erwartest:
Code:
key       =  handles.keys;

keypos    = ~ cellfun('isempty', key);
key       = key(keypos);

kat1      = handles.kat==1;  
kat2      = handles.kat==2;
kat3      = handles.kat==3;
kat4      = handles.kat==4;

kat1      = kat1(keypos);
kat2      = kat2(keypos);
kat3      = kat3(keypos);
kat4      = 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,'*.mat'));
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

poskat1 = true(1,length(list));
if any(kat1)
 poskat1  = any(pos(kat1,:),1);
end

poskat2 = true(1,length(list));
if any(kat2)
 poskat2  = any(pos(kat2,:),1);
end

poskat3 = true(1,length(list));
if any(kat3)
 poskat3  = any(pos(kat3,:),1);
end

poskat4 = true(1,length(list));
if any(kat4)
 poskat4  = any(pos(kat4,:),1);
end
pos = poskat1 & poskat2 & poskat3 & poskat4;  
%%%%%%%%%%%%%%%%%%%%% ab hier...
names = list(pos);
Data = cell(1, numel(names));  

for i = 1:numel(names)
   Data{i} = load ('-mat', fullfile(FilePath, names{i}));
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2012, 14:45     Titel:
  Antworten mit Zitat      
wie soll ich dir die sachen schicken ??
hab sie erstellt aber kann sie hier im forum nicht hochladen.

danke ich probiers mal aus...
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.09.2012, 15:03     Titel:
  Antworten mit Zitat      
JaSoIstEs hat Folgendes geschrieben:
wie soll ich dir die sachen schicken ??
hab sie erstellt aber kann sie hier im forum nicht hochladen.

danke ich probiers mal aus...


Nicht mehr nötig, habe mir selbst kleines Set zusammen gebastelt.
Lösung siehe oben.
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2012, 16:13     Titel:
  Antworten mit Zitat      
es funktioniert ich danke dir Very Happy !
aber was ich nicht verstehe das wenn ich
das:
Code:
% assignin('Base','xyz',xyz)

dann sagt er mir das xyz nicht vorhanden ist aber wenn ich es dann direkt über die mfile laufen lasse ist xyz da....
 
JaSoIstEs

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.09.2012, 07:01     Titel:
  Antworten mit Zitat      
Guten Morgen,

bei mir funktioniert die checkbox PGN nicht jedes mal wenn ich drauf klicken will kommt dieser Fehler :

Error using feval
Undefined function 'PGN_Callback' for input arguments of type 'struct'.

und habe noch 2 fragen... Very Happy
1. Frage
ich würde gerne für die editierbare cheboxes einbauen sprich für beim panel probanden und 5 beim panel momente.

das wenn ich die checkboxen checke eine dialog box kommt wo ich meine werte eingeben kann so in etwa: ( das ist jetzt nur das prog für die dialog box und auch nicht auf mich zugeschnitten sondern nur aus dem internet kopiert einfach als beispiel):
Code:
prompt={'Enter your weight:','Enter your height:','Enter your name:'};
% Create all your text fields with the questions specified by the variable prompt.
title='BMI calculator';
% The main title of your input dialog interface.
answer=inputdlg(prompt,title);
weight = str2num(answer{1});
height = str2num(answer{2});
% Convert these values to a number using str2num.
name = answer{3};


ich habe es schon ausprobier wo ich die einzelnen checkboxes programmiert habe da war es ok aber ich wüßte jetzt nicht wie ich das über nur einen callback hier machen soll. oder gibt es da noch eine andere möglichkeit direkt über gui sowas variabel zu machen ?

2. Frage :

dann würde ich gerne noch eine listdlg einbauen die nach den suchkriterien mir alle gefundenen files auflistet ich die dann bestimmte files auswählen kann und dann in meinem script weiter verarbeitet werden soll.
leider hab ich es schon öfters versucht so eine listdlg einzubauen aber hat nie wirklich funktioniert.

Code:
key       =  handles.keys;

keypos    = ~ cellfun('isempty', key);
key       = key(keypos);

kat1      = handles.kat==1;  
kat2      = handles.kat==2;
kat3      = handles.kat==3;
kat4      = handles.kat==4;

kat1      = kat1(keypos);
kat2      = kat2(keypos);
kat3      = kat3(keypos);
kat4      = 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,'*.mat'));
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

poskat1 = true(1,length(list));
if any(kat1)
 poskat1  = any(pos(kat1,:),1);
end

poskat2 = true(1,length(list));
if any(kat2)
 poskat2  = any(pos(kat2,:),1);
end

poskat3 = true(1,length(list));
if any(kat3)
 poskat3  = any(pos(kat3,:),1);
end

poskat4 = true(1,length(list));
if any(kat4)
 poskat4  = any(pos(kat4,:),1);
end
pos = poskat1 & poskat2 & poskat3 & poskat4;  
%%%%%%%%%%%%%%%%%%%%%%
names = list(pos);
Data = cell(1, numel(names));  
%%%%%%%%%%%%%%%%%%%%%%hier dazwischen ?
for i = 1:numel(names)
   Data{i} = load ('-mat', fullfile(FilePath, names{i}));
end
 


Schonmal ein riesssseen Dank. hast mir auch bis hier hin mega viel geholfen.
 
JaSoIstEs
Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 02.10.2012, 09:44     Titel:
  Antworten mit Zitat      
Ok da Problem mit der einen checkbox hat sich erledigt Very Happy
aber der rest leider noch nicht...
Private Nachricht senden Benutzer-Profile anzeigen
 
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.