如何生成像
这样的矢量x1,x2,x3,x4,...,xn
问题是连接','和'x'char
n=100
A = (1:n);
答案 0 :(得分:5)
@Jonas's answer略有改善。 SPRINTF将为您重复做法,避免使用面具:
>> n = 5; >> out = sprintf('x%u,', 1:n); >> out(end) = [] out = x1,x2,x3,x4,x5
答案 1 :(得分:1)
要生成字符串'x1,x2'
等,您可以使用SPRINTF为REPMAT创建一个掩码,如下所示:
n = 5;
mask = repmat('x%i,',1,n);
out = sprintf(mask,1:n);
out = out(1:end-1)
out =
x1,x2,x3,x4,x5
请注意,如果您确实想要创建包含字符串'x1','x2'
等的向量,则可以使用ARRAYFUN生成单元格数组:
out = arrayfun(@(x)sprintf('x%i',x),1:n,'uniformOutput',false)
out =
'x1' 'x2' 'x3' 'x4' 'x5'
答案 2 :(得分:1)
更好的答案是,不要这样做。虽然你可以这样做,但这可能会让你在未来心痛,而不是你想要的。当你可以使用数组索引相同的数据时,有数百个这样的变量浮动是愚蠢的。因此可能是x {1},x {2},....