Error using sym>convertChar (line 1448)
7 ビュー (過去 30 日間)
古いコメントを表示
Hi everyone,
I get the error message:
"Error using sym>convertChar (line 1448) Character vectors and strings in the first argument can only specify a variable or number. To evaluate character vectors and strings representing symbolic expressions, use 'str2sym'.
Error in sym>tomupad (line 1214) S = convertChar(x);
Error in sym (line 211) S.s = tomupad(x);
Error in SolveExample>TurnEqIntoDEq (line 43) depVarsLong(k) = sym([char(depVars(k)) '(' char(indepVar) ')']);
Error in SolveExample (line 21) [dEq3, initEq3] = TurnEqIntoDEq(Eq1, [a b c], t, 0);"
when I run the attached code. What can I do?
0 件のコメント
採用された回答
Tiasa Ghosh
2018 年 8 月 13 日
編集済み: Tiasa Ghosh
2018 年 8 月 13 日
You have used the function subs() for substitution in your function TurnEqIntoDEq . The input to subs (L47 in your code file) is a string. But the function 'subs' expects a symbolic variable or expression. So in the parent file, convert the Eq1 to symbolic string with str2sym and then pass it to TurnEqIntoDEq function. Also, use str2sym for depVarsLong(k) and depVarsShort(k) in TurnEqIntoDEq. I have done the same to the file attached.
6 件のコメント
その他の回答 (1 件)
ahmed
2024 年 5 月 21 日
syms s U Y
% Define the Laplace transform of u(t) and y(t)
U = laplace(sym('u(t)', 't'), s);
Y = laplace(sym('y(t)', 't'), s);
% Define the differential equation in Laplace domain
eqn = 6*s^2*U - 3*U + Y/s == -3*s^3*Y - Y;
% Solve for the Laplace transform of the output Y(s)
Y_s = solve(eqn, Y);
% Define the Laplace transform of the input, U(s)
U_s = laplace(sym('u(t)', 't'), s);
% Calculate the transfer function H(s) = Y(s) / U(s)
H_s = simplify(Y_s / U_s);
% Display the transfer function
disp('Transfer Function:');
disp(H_s);
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!