[英]Looping through an array of strings in Matlab
我正在嘗試使用Matlab中的字符串列表遍歷某些文件夾,而我嘗試過的所有方法均無效。
例如,如果我有三個名字,我只想遍歷像這樣的一些文件夾:
names = ['Tom', 'Dick', 'Harry']
SourceDir = /path/to/my/files
for name = 1:length(names)
mkdir SourceDir, "/things_belonging_to_", names(name), "/new_things"
OutputDir = (SourceDir, "/things_belonging_to_", names(name), "/new_things")
cd "/things_belonging_to_", names(name), "/oldthings"
% do other stuff that will be dumped in OutputDir
end
我嘗試使用{}
而不是[]
,嘗試使用sprintf
和fullfile
。 我想要的只是一個無聊的循環,我似乎無法找到/理解向我展示如何在mkdir
或cd
命令中使用字符串的文檔。 我總是以string input not supported
告終,或者Arguments must contain a character vector
。
names = ['Tom', 'Dick', 'Harry']
使names
成為字符串,而不是字符串數組。 要使用字符串數組,請確保您具有MATLAB 2016b +,可以在其中使用雙引號:
names = ["Tom", "Dick", "Harry"]
否則,使用單元格數組:
names = {'Tom', 'Dick', 'Harry'}
並使用大括號和索引訪問元素:
names{1} % Tom
names{2} % Dick
您的代碼中還有許多其他錯誤:
SourceDir = '/path/to/my/files'
mkdir([SourceDir, '/things_belonging_to_', char(names(name)), '/new_things'])
OutputDir = [SourceDir, '/things_belonging_to_', char(names(name)), '/new_things']
cd(['/things_belonging_to_', char(names(name)), '/oldthings'])
在MATLAB中,您可以使用方括號[]
將字符串連接為一個。
一體:
names = {'Tom', 'Dick', 'Harry'};
SourceDir = '/path/to/my/files';
for name = 1:length(names)
mkdir([SourceDir, '/things_belonging_to_', names{name}, '/new_things'])
OutputDir = [SourceDir, '/things_belonging_to_', names{name}, '/new_things']
cd(['/things_belonging_to_', names{name}, '/oldthings'])
% do other stuff that will be dumped in OutputDir
end
進一步閱讀:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.