我在matlab中遇到了一个问题:
我从其他函数得到c的值,然后我想将c值1放入dsolve来解决这个微分方程。但是价值不能放入dsolve,我该怎么做才能转移价值? 例如:
c = 1;
u = dsolve('Du = 1+u^c','t') % c is c, but is not 1!
答案 0 :(得分:1)
您的错误原因是当您使用'c'
时,c
被解释为char(或字符串)而不是变量。您可以做的是使用num2str
来组合字符串和变量,如下所示:
u = dsolve(['Du = 1+u^' num2str(c)],'t') % c is c, but is not 1!
u =
C16*exp(t) - 1
如果您有多个变量,可以执行以下操作:
u = dsolve(['Du = ' num2str(1/(m*n)) '*1 + u^' num2str(c)])
u =
C16*exp(t) - 1