生成名称向量MATLAB

时间:2011-03-09 02:54:18

标签: matlab

如何生成像

这样的矢量
x1,x2,x3,x4,...,xn 

问题是连接','和'x'char

n=100
A = (1:n);

3 个答案:

答案 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'等,您可以使用SPRINTFREPMAT创建一个掩码,如下所示:

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},....