У меня есть следующее:
syms As(s) F0 alpha beta m1 m3
As(s) = ((F0*(alpha-beta)/(2*(s^2+(alpha-beta)^2)))-(F0*(alpha+beta)/(2*(s^2+(alpha+beta)^2))))/(m1+m3);
m1 = 1; % [kg]
m3 = 1; % [kg]
famp = 0.5; % [N]
scale = 0.01;
F0 = famp*scale; % [N]
alpha = 0.2;
beta = 0.15;
subs(As,{m1,m3,F0,alpha,beta},{m1,m3,F0,alpha,beta});
После замены скалярных значений в As(s), As(s) по-прежнему остается следующим:
Почему MATLAB не заменяет указанные мной значения в As(s)?
Оххх ок. Я думал, что все будет в порядке, просто перезаписав представление sym двойным значением. Я понимаю. Надо заменять, а не заменять. @CrisLuengo

Определите свою символическую переменную, используя syms.
Функция syms в MATLAB используется для создания символьных переменных. Эти переменные используются для символьных математических операций.
syms s m c k m1 m3 F0 alpha beta
As = ((F0*(alpha-beta)/(2*(s^2+(alpha-beta)^2)))-(F0*(alpha+beta)/(2*(s^2+
(alpha+beta)^2))))/(m1+m3);
m_val = 1; % [kg]
c_val = 2; % [kg/s]
k_val = 2; % [N/m]
m1_val = 1; % [kg]
m3_val = 1; % [kg]
famp = 0.5; % [N]
scale = 0.01;
F0_val = famp * scale; % [N]
alpha_val = 0.2;
beta_val = 0.15;
As_subs = subs(As, {m, c, k, m1, m3, F0, alpha, beta}, {m_val, c_val,
k_val, m1_val, m3_val, F0_val, alpha_val, beta_val});
As_simplified = simplify(As_subs);
disp(As_simplified);
Я понимаю. Надо заменять, а не заменять. @Ринкал Пармар.
Когда вы делаете
syms m1, вы создаете переменнуюm1, которая представляет символическую переменную. Когда вы затем делаетеm1 = 1, вы перезаписываете эту переменную, теперьm1— это числовой массив1, он больше не является символьной переменной. Теперьsubs(…, m1, … m1, …)заменяет 1 на 1. Потому что у вас больше нет ссылки на символьную переменнуюm1в выражении. [Это просто для того, чтобы объяснить, почему ответ ниже работает: они не перезаписывают символическую переменную, а создают новую, другую переменнуюm1_val = 1.]