Angenommen, ich habe die folgenden Beispieldateinamen: file_0250.pdf, file_0251.pdf, file_0252.pdf. Ich möchte folgende Zellenfeld erhalten:Matlab: str2double funktioniert auf Windows PC aber nicht auf Apple Mac
'250 251 252'.
auf dem Windows-PC bei der Arbeit ich den folgenden Code ohne Probleme laufen können, aber auf meinem MacBook zu Hause kann ich nicht die ‚str2double‘ Werte, wie es bekommen gibt einen NaN-Wert zurück. Es ist frustrierend:
folder_name = '/User/....';
file_name = 'file_';
extension = '.pdf';
%//' files pattern with absolute paths
filePattern = fullfile(folder_name, [file_name '*' extension]);
old_filename = cellstr(ls(filePattern)) ;
%// Get numbers associated with each file
file_ID = strrep(strrep(old_filename, file_name ,''), extension,'');
file_ID_doublearr = str2double(file_ID);
I ‚cell2mat‘, ‚str2mat‘ versucht, aber sie gehen nicht gut mit dem Rest des Codes:
file_ID_doublearr = file_ID_doublearr - min(file_ID_doublearr)+ start_number;
file_ID = strtrim(cellstr(num2str(file_ID_doublearr)));
%// Get zeros string to be pre-appended to each new_name
str_zeros = arrayfun(@(t) repmat('0',1,t), 4-cellfun(@numel,file_ID),'uni',0) ;
%// Generate new filenames
new_name = get(handles.new_name, 'string');
new_extension = get(handles.new_extension, 'string');
new_filename = strcat(new_name,str_zeros,file_ID,new_extension) ;
%// Finally rename files with the absolute paths
cellfun(@(m1,m2) movefile(m1,m2),fullfile(folder_name,file_name),fullfile(folder_name,new_filename)) ;
@Mosawi Das Problem ist * nicht * mit 'str2double' ist es mit' ls' zu verwenden. Ich habe meiner Antwort mehr Erklärung gegeben. – Suever