簡體   English   中英

在Matlab中循環遍歷字符串數組

[英]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

我嘗試使用{}而不是[] ,嘗試使用sprintffullfile 我想要的只是一個無聊的循環,我似乎無法找到/理解向我展示如何在mkdircd命令中使用字符串的文檔。 我總是以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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM