Ich habe den Eindruck, Dir ist das Verhalten des Sterns noch nicht ganz klar. Er bedeutet, dass stattdessen irgendein String eingefügt sein darf. Mit "[key1, '*', key2]" bekommst Du alle Filenamen, die mit key1 beginnen. Wenn vor key1 etwas stehen darf, brauchst Du: "['*', key1, '*', key2, '*.*']".
Wenn direkt nach key2 die File-Extension kommen soll: "['*', key1, '*', key2, '.*']".
Doppelte Sternchen bedeuten dagegen, dass zwei mal irgendetwas kommen darf, was aber natürlich das gleiche ist wie einmal.
Gruß, Jan
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 18.09.2012, 13:11
Titel:
danke euch beiden habt mir sehr geholfen.
das mit dem suchen funktioniert jetzt auch sehr gut.
nur hab ich jetzt das Problem das ich die in der (GUI) checkbox generierten "key´s" nicht zur mfile kriege (glaube ich zumindest)
Hier in der Gui einmal die checkbox mit dem "key1":
Code:
function PGN_Callback(hObject, eventdata, handles) % hObject handle to PGN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
dann rufe ich in der GUI die m-file auf mit der ich dann die keys benutze:
Code:
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
NominalMomentGleichNull;
assignin('base','PGN_SKF',PGN_SKF);
1. auf die checkbox klicken: jetzt wird die variable key1 mit dem inhalt PGN erzeugt
2. ich starte die m-file über GUI dort wird aber nichts erkannt.
ich habe in der m-file eine statusabfrage
damit ich sehe ob es gesetzt ist. Wie gesagt wenn ich die mfile über die gui starte passiert nichts bzw. ich kriege den status 0 für key1.
starte ich die m-file direkt über matlab zeigt die statusabfrage mir eine 1 zurück und es funktioniert alles prima.
also wo ist das Problem bei der GUI ?
Probiert habe ich schon:
Code:
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
ifexist('key1') evalin('base','key1');
end
NominalMomentGleichNull;
assignin('base','PGN_SKF',PGN_SKF);
habs hinbekommen
wieso kriegt man die sachen erst hin wenn man es gepostet hat .
Code:
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
wenn ich z.B. 2 keys auswähle kommt im GUI bis hier hin auch alle 2 Werte an.
Code:
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
Ein Stern bedeutet ja, dass statt dessen irgendein string stehen kann. Zwei Sterne wären dann zwei beliebige Strings, die man aber natürlich auch zu einem zusammenfassen kann.
Wenn der Such-String nicht mit einem Stern beginnt, muss der "key" auch ganz am Anfang erscheinen.
Das ist also ganz logisch aufgebaut.
Gruß, Jan
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 19.09.2012, 12:39
Titel:
Servus,
ich muss leider noch einmal stören.
mit dem was ich jetzt gemacht habe konnte ich ja bestimmte strings auswählen und matlab danach suchen lassen.
was er gesucht hat waren matfiles die ich dann später in eine Datenstruktur gepackt habe und damit weiter gearbeitet hab.
Das will ich auch weiterhin machen aber nicht nur mit mehr "spielraum".
beispiel filenamen: (1)a_b_c_d und (2)a1_b1_c1_d1 (3)a2_b2_c2_d2
wenn ich jetzt wie gehabt nach bc suche kriege ich file (1).
aber ich will matlab über die checkboxen sagen suche files mit 'b' 'c' 'a1' und 'd2'. dann sollten alle 3 files erkannt werden die ich dann weiter verarbeiten kann.
habe überlegt das dann mit list list1 list2 zu machen und sie dann mit cat zu 'verbinden'
wäre das zu kompliziert ? wenn ja was wäre einfacher ? oder wie würdet ihr das realisieren ?
jetzt kann ich aus jeder gruppe 1 auswählen und er sucht nach den namen wie oben beschrieben möchte ich dann z.B. aus Gruppe1 1 Möglichkeit auswählen aus Gruppe2 1 auswählen aber aus Gruppe3 2 auswählen.
dann soll mir matlab files finden die folgende namensverbindung hat raussuchen :
- a1_b1_c1
- a1_b1_c2
ich hoffe das war verständlicher als oben.
DANKE IM VORAUS.
JaSoIstEs
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 19.09.2012, 15:37
Titel:
Hallo denny
kann man das intersect auch für eine n-anzahl an cell´s
benutzen weil das würde mich auch schon sehr weiter helfen.
wenn nicht gibt es da eine andere möglichkeit.
bei mir isnd das 13 cell´s.
kann man das intersect auch für eine n-anzahl an cell´s
benutzen weil das würde mich auch schon sehr weiter helfen.
wenn nicht gibt es da eine andere möglichkeit.
bei mir isnd das 13 cell´s.
Danke im Voraus
Du meinst du hast gleichzeitig 13 Cells ?
Mit INTERSECT kann man nur aus 2 Mengen Schnitt bilden, also musste du für deine 13 Cells den Befehl sequenziell aufrufen.
Ich würde an dieser Stelle REGEXP verwenden, dazu ist das besser wenn du dir Schlüsselwörter in Cell ablegst:
Code:
key ={'Michael','1800'}
list = dir(fullfile(FilePath,['*.*']));
list = {list(~[list.isdir]).name};
Hallo denny danke erst mal für deine antwort.
momentan sind es noch 13 cells später werden es an die 50-60.
Die cells sind einfach stichwörter mit dem ich files suche und filtern will.
die 13 cells (suchwörter) sindn icht immer gleichzeitig "an" sondern man soll später zwischen 0-13 (oder später 50-60) checkboxes haben mit dem man bestimmte files dann aussuchen kann.
es gibt ja das intersect was leider nur für 2 cells benutzt werden kann hab im internet eine funktion die von jemanden geschrieben worden ist gefunden und nennt sie mintersect (multiple.....)
kannst mal schauen ob die was taugt ?
Code:
function runIntersect = mintersect(varargin)
%MINTERSECT Multiple set intersection.
% MINTERSECT(A,B,C,...) when A,B,C... are vectors returns the values % common to all A,B,C... The result will be sorted. A,B,C... can be cell % arrays of strings.
%
% MINTERSECT repeatedly evaluates INTERSECT on successive pairs of sets, % which may not be very efficient. For a large number of sets, this should % probably be reimplemented using some kind of tree algorithm.
%
% MINTERSECT(A,B,'rows') when A,B,C... are matrices with the same % number of columns returns the rows common to all A,B,C...
%
% See also INTERSECT
ich kann den Fehler nicht reproduzieren,
so wie es in deinen Beitrag jetzt steht -- funktioniert.
Also da kommt gleich die Frage auf, wo liegt der Unterschied zw. dem Code dass du gepostet hast und was du ausprobiert hast?
PS: ja die Funktion das du in FEX gefunden hast sieht vernünftig aus, so hätte ich das auch gelöst wenn ich INTERSECT mehrmals verwenden müsste
JaSoIstES
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 20.09.2012, 10:11
Titel:
Ja sorry habs auch grad gemerkt habs im code gändert und dann gepostet bei mir stand es vorher so da
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 ?
ich weiß ich frag so viel aber das sind alles neue sachen für mich
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.