“MuPAD命令出错:DOUBLE无法将输入表达式转换为双数组”

时间:2013-11-07 07:10:39

标签: arrays matlab mupad

我试图找到这个简单的for循环问题的答案,但我找不到任何关于它的教程。我正在尝试计算列向量的特定条目,但错误“MuPAD命令中的错误:DOUBLE无法将输入表达式转换为双数组”一直显示。我很确定for循环中的两个条目都应该作为u1,...,u20的标量函数出现但我必须做错了。我的脚本如下:

U = sym('u', [21 1]);
P(1,1) = 1;
Q(1,1) = 0;
for k = 1:20
    P(k+1,1) = 1/20*(-.3*P(k,1) +.65*Q(k,1)+U(k,1))+P(k,1);
    Q(k+1,1) = 1/20*(-.65*Q(k,1) + .3*P(k,1)-U(k,1))+Q(k,1);
end
P(21,1)
Q(21, 1)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

大卫建议,也许:

U = sym('u', [21 1]);
syms P Q
for k = 1:20
    P(k+1,1) = 1/20*(-.3*P(k,1) +.65*Q(k,1)+U(k,1))+P(k,1);
    Q(k+1,1) = 1/20*(-.65*Q(k,1) + .3*P(k,1)-U(k,1))+Q(k,1);
end
P(21,1)
Q(21, 1)

在堆栈溢出的其他地方看到类似的解释。 2 variables in an array