subs 函数返回零而不是项

问题描述 投票:0回答:1

我正在关注 MathWorks 的本教程

与视频中相同的代码部分的行为与预期不同。我试图用 HOLDER_list 中的符号表达式替换简单方程中的偏微分表达式。它似乎适用于第一对:

THE_X
x
,但是当涉及到第二个热值时,
diff(x,t)
被替换为
0
而不是我所期望的
THE_XD

这是代码:

clear
syms m k b F
syms t x(t)
syms THE_X THE_XD THE_XDD
HOLDER_list = [THE_X,THE_XD,THE_XDD];
actual_list = [x, diff(x,t), diff(x,t,2)];

v =diff(x,t)
v_new = subs(v, actual_list, HOLDER_list)
matlab
1个回答
0
投票

HOLDER_list 和actual_list 中指定的顺序似乎存在问题。此外,出现在 subs 函数中的变量必须位于元胞数组中。这对我有用:

clear
syms m k b F
syms t x(t)
syms THE_X THE_XD THE_XDD
HOLDER_list = {THE_X,THE_XD,THE_XDD};
actual_list = {x, diff(x,t), diff(x,t,2)};

v = diff(x,t)
v_new = subs(v, fliplr(actual_list), fliplr(HOLDER_list))
© www.soinside.com 2019 - 2024. All rights reserved.