这是一个例子:
for b = 1:numcarlo;
eval(sprintf('pspsdist%d = psdistmat(b,:);', b))
eval(sprintf('cell%d = cell(1, iterestemp%d);', b))
end;
第 1 行有效,它告诉我们在 for 循环中执行多少次。第 2 行有效,它生成 pspsdist 的 numcarlo 数字,数字作为后缀(pspsdist1 等)。只要 iterestemp 最后有一个 %d ,第3 行就不起作用。它提供以下错误:
??? Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
但它是平衡的!当我摆脱那个 %d 时,它可以工作,但我需要有 iterestemp%d,因为有多个带有后缀的 iterestemp(如在 pspsdist 中,它们在末尾编号,我指的是特定的)。
为什么 matlab 会这样做,有什么办法可以解决这个问题吗?