每个for循环迭代的不同语句

时间:2015-07-21 00:01:26

标签: matlab for-loop vector printf

我想为for循环的每次迭代打印一个不同的语句。我已经尝试将每个语句分配给一个变量,将每个变量放在一个向量中,并为每次迭代调用一个不同的向量索引,如下所示:

A = 1st statement
B = 2nd statement
C = 3rd statement

v = [A,B,C]

for i = 1:3
    fprintf('%s',v(i))
end

但它只打印每次迭代一个字母的第一个语句。什么是更好的方法呢?

2 个答案:

答案 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)。