如何在循环中连接字符串? 例如,我有这个字符数组
fruits = char('apple','pear')
我想看看这个输出
apple tart
pear tart
但是当我使用这个循环时:
for f = fruits'
strcat(f," tart")
end
输出
ans =
a tart
p tart
p tart
l tart
e tart
ans =
p tart
e tart
a tart
r tart
tart
实际上我需要这个来读取目录中的一堆csv文件。部分文件名是我想要循环的变量。例如,我的目录包含以下2个文件,我想从中读取数据:
peartart.csv
appletart.csv
这个other answer using a list of files很好但是我无法控制文件中的fruit
变量名。我会控制这个变量,因为我将对每个水果数据进行统计测试,并将测试结果与水果名称存储在另一个文件中。
答案 0 :(得分:3)
使用fruits = char('apple','pear')
,你可以创建一个字符的基础。最靠近字符串列表的是一个单元格数组。
fruits = {'apple','pear'}
打开csv应该是这样的:
for f = fruits
csvread([f{:},'tart.csv'])
end
不确定是否需要t之前的空白,取决于您的文件名。
答案 1 :(得分:2)
如果cellfun
是单元格数组,则可以使用fruits
无需循环执行此操作:
fruits = {'apple','pear'};
tarts = cellfun(@(x)strcat(x,' tart'),fruits,'UniformOutput',false)
然后,您可以使用tarts{i}
>> tarts{1}
ans =
apple tart
答案 2 :(得分:1)
这是一个解决方案,使用字符串的单元格数组:
fruits={'apple','pear'};
for i_fruit = 1:length(fruits)
strcat(fruits{i_fruit},' tart')
end
答案 3 :(得分:0)
fruits是一个大小为2x5的2D数组。当你这样做
for f=fruits'
您正在将水果转换为1D列数组并循环遍历每个元素。你应该循环遍历每一行,如下所示:
fruits = char('apple','pear');
for ii=1:size(fruits,1)
strcat(fruits(i,:),' tart')
end
输出:
ans =
apple tart
ans =
pear tart