Rename folders using folder names saved in cells
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Alberto Acri
am 18 Jun. 2023
Kommentiert: Steven Lord
am 19 Jun. 2023
I have a folder 'A' inside which I have numbered folders. I saved the folder numbers inside a cell:
cell_numbers = {2;10;22;48};
I want to rename those folders with the names contained in this cell:
cell = {'parameter_1';'parameter_2';'parameter_3';'parameter_4'};
So I want that:
- the folder '2' will be called 'parameter_1'
- the folder '10' will be called 'parameter_2'
- the folder '22' will be called 'parameter_3'
- the folder '48' will be called 'parameter_4'
0 Kommentare
Akzeptierte Antwort
the cyclist
am 18 Jun. 2023
Here is one way:
cell_numbers = {2;10;22;48};
cell = {'parameter_1';'parameter_2';'parameter_3';'parameter_4'}; % <---- You should rename this variable, because "cell" is a MATLAB function name
for nc = 1:numel(cell_numbers)
movefile(sprintf("%d",cell_numbers{nc}),cell{nc})
end
11 Kommentare
Steven Lord
am 19 Jun. 2023
You've got a mismatch somewhere between numbers and characters. What are characters 52 and 53?
char(52)
char(53)
What are the names of your first two files?
Looking at the third file, characters 49 and 54 are '1' and '6'.
char([49 54])
I'm guessing somewhere you tried assigning text data into a numeric array using subscripted indexing.
x = 1:10 % numeric array
x(5) = '5' % x(5) becomes 53 because char(53) is '5'
I recommend using a string array instead, as assigning numbers into a string array or vice versa converts them the way you probably expect (5 becomes "5" and vice versa rather than '5' becoming 53 and vice versa.)
x(8) = "64" % Assign string into numeric array
s = string(x)
s(2) = 999 % Assign number into string array
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Text Files finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!