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

inputdlg fügt manchmal Leerzeichen zur Eingabe hinzu

 

equi
Forum-Century

Forum-Century


Beiträge: 123
Anmeldedatum: 07.03.17
Wohnort: Tübingen
Version: Matlab 2018a
     Beitrag Verfasst am: 10.10.2018, 17:04     Titel: inputdlg fügt manchmal Leerzeichen zur Eingabe hinzu
  Antworten mit Zitat      
Hallo zusammen,

ich habe mir eine Funktion geschrieben um Messdaten in einem Ordner um zu benennen und diese mit einer fortlaufenden Versuchsnummer zu versehen.
Da ein Teil des Namens eingegeben werden soll habe ich eine inputdlg verwendet.

Code:

function Rename
% Umbennen aller .mf4 - Messdateien in einem Ordner

Pfad=uigetdir();
files=dir([Pfad '\*.mf4']);
files1={files.name};
prompt={'Dateiname','Datum'};
title1='Eingabe';
namedate=inputdlg(prompt, title1);
namedate=char(namedate);
for i=1:numel(files)
    name=files1{i};
    dateiendung=name(end-3:end);
    Fortlaufendenummer=num2str(i);
    inputname=fullfile(name);
    outputname=sprintf('%s', [namedate(1,:) '_V' Fortlaufendenummer '_' namedate(2,:) dateiendung]);
    copyfile(inputname,outputname)
    delete(inputname)
end



end
 


Das ganze Funktioniert auch soweit nur heißt meine Datei nun:
"80°C_6kg Last_V5_20181002 .mf4" (5 Leerzeichen)
oder beim nächsten Versuch:
"Test_V5_123 .mf4" (1 Leerzeichen)
oder beim dritten Versuch:
"Uebung _V10_20181010.mf4" (Leerzeichen nach meinem ersten eingabefenster in Inputdlg)

Die Leerzeichen sind nicht erwünscht und ich habe sie auch nicht speziell in die Eingabefenster eingegeben.

Jemand eine Idee wie man diese willkürliche Erstellung der Leerzeichen verhindern kann?

(Falls jemand weiß wie die namens umbenennen einfacher/besser geht besteht natürlich auch Interessen Laughing )
_________________

Grüße Equi Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.10.2018, 21:40     Titel:
  Antworten mit Zitat      
Hallo,

schau dir doch mal im Debugger an, wo genau die Leerzeichen entstehen. Meine Vermutung: nicht bei inputdlg, sondern bei char. Damit du aus den zwei Eingaben ein char-Array machen kannst, muss nämlich die kürzere mit Leerzeichen aufgefüllt werden.
Warum machst du das denn überhaupt? Du kannst die Eingaben ja direkt mit namedate{1} und namedate{2} extrahieren.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
equi
Themenstarter

Forum-Century

Forum-Century


Beiträge: 123
Anmeldedatum: 07.03.17
Wohnort: Tübingen
Version: Matlab 2018a
     Beitrag Verfasst am: 11.10.2018, 12:37     Titel:
  Antworten mit Zitat      
Hallo Harald,

du hattest recht, die Leerzeichen entstehen bei char.
Hab es entfernt und die Eingaben mit namedate{1} extrahiert.
Macht natürlich auch mehr Sinn, gibt kein Grund warum ich es mittels char gemacht habe.

Vielen Dank für die Hilfe
_________________

Grüße Equi Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.