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

Vergleichen von 2 Strings

 

Christian1312

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2013, 18:56     Titel: Vergleichen von 2 Strings
  Antworten mit Zitat      
Hallo!

Ich bin gerade dabei ein Programm für die Uni zu schreiben komme allerdings gerade nicht weiter. Ich muss 2 Strings vergleichen allerdings ist dies mit STRCMP nicht möglich. Mein Problem ist folgendes ...

Ich erstelle mit folgendem Code eine Übersicht meiner *.mat Dateien:

Code:
Mdir = dir(pwd);
nbentries = size(Mdir, 1);
Mfiles = [];
for entry_i = 1:nbentries
    if Mdir(entry_i).isdir == false
        filename = Mdir(entry_i).name;
        if filename(1) ~= '.'
            [p, n, ext] = fileparts(filename);
            if strcmpi(ext, '.mat')
                Mfiles = strvcat(Mfiles, filename);
            end
        end
    end
end
nbfiles = size(Mfiles, 1);


Die Namen sind somit alle in Mfiles gespeichert als 7x21 char, da es 7 Dateien sind und der längste Dateiname 21 Buchstaben hat. Ist ja logisch soweit. Dateinamen mit beispielsweise 17 Buchstaben sind allerdings auch als 1x21 char abgespeichert.

Ich möchte jetzt prüfen ob die Eingabe des Users ein String aus der zuvor erstellen *.mat-Liste ist. Allerdings geht dies nicht wenn ich einen String mit 17 char-Werten vergleich will, da in Mfiles ja immer 21 char-Werte stehen.

Wie kann ich das Problem lösen? Smile

Ich hoffe ich konnte mein Problem verständlich schildern und ihr könnt mir weiter helfen!

Danke schonmal!

edit by denny: Bitte die Codeumgebung verwenden!


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 15.09.2013, 19:08     Titel:
  Antworten mit Zitat      
hallo christian. bitte benutze in zukumpft die code umgebung.
warum speicherst du deine dateinamen nicht in einem cell ab ? das ist viel einfacher zu durchsuchen und hat immer nur so viele einträge wie der name auch wirklich lang ist.
Code:
Mdir = dir(pwd);
nbentries = size(Mdir, 1);
Mfiles = [];
k=1
for entry_i = 1:nbentries
if Mdir(entry_i).isdir == false
filename = Mdir(entry_i).name;
if filename(1) ~= '.'
[p, n, ext] = fileparts(filename);
if strcmpi(ext, '.mat')
Mfiles{k} =  filename;
k=k+1
end
end
end
end
nbfiles = size(Mfiles, 1);

ob eine datei dann schon vorhanden ist lässt sich dann einfach mit
Code:
any(strcmp(Mfiles,'Dateiname'))
rausfinden
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.09.2013, 19:09     Titel:
  Antworten mit Zitat      
Hallo,

bitte die Code-Umgebung verwenden.

Mit cellstr kannst du ein solches char-Array in ein Cell Array von Strings umwandeln. Allerdings hätte ich von vorneherein mit Cell Arrays gearbeitet.

Zudem kannst du das ganze viel einfacher haben:
Code:
Mdir = dir(fullfile(pwd, '*.mat'));
Mfiles = {Mdir.name}'


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Christian1312

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2013, 19:19     Titel:
  Antworten mit Zitat      
Super vielen Dank für die schnellen und hilfreichen Antworten! Smile
 
Neues Thema eröffnen Neue Antwort erstellen



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.