我想为for循环的每次迭代打印一个不同的语句。我已经尝试将每个语句分配给一个变量,将每个变量放在一个向量中,并为每次迭代调用一个不同的向量索引,如下所示:
A = 1st statement
B = 2nd statement
C = 3rd statement
v = [A,B,C]
for i = 1:3
fprintf('%s',v(i))
end
但它只打印每次迭代一个字母的第一个语句。什么是更好的方法呢?
答案 0 :(得分:3)
在1xn
数组中,将存储n
个字母。这就是为什么你看到前三个字母被打印(i=1:3
)。假设所有语句的长度不同,则可以将A,B,C
保存在单元格数组中。然后像往常一样访问它。
v={A;B;C};
for i = 1:size(v,1) %always try to use size(v,1) instead of hard-coding.
fprintf('%s',v{i,1})
end
如果所有语句具有相同的长度,则将它们放在矩阵中。
v=[A;B;C];
for i = 1:size(v,1) %always try to use size(v,1) instead of hard-coding.
fprintf('%s',v(i,:))
end
答案 1 :(得分:0)
您可以使用以下内容......
A = '1st statement'
B = '2nd statement'
C = '3rd statement'
v = {A;B;C}
for i = 1:3
fprintf('%s ',v{i,1}))
end
请注意使用{;;;}
(单元格数组... http://uk.mathworks.com/help/matlab/cell-arrays.html)
而非[,,,]
(矩阵...... http://uk.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html)。