Format the left hand side of a symbolic expression in a Live Script

조회 수: 7 (최근 30일)
Carlos Souto
Carlos Souto 2022년 3월 11일
편집: Paul 2022년 3월 13일
In a live script, the following code:
syms A_1 x alpha
N_phi = A_1*x*cos(alpha)
outputs the following:
N_phi =
Is there a simple way to format the left side of the equation so that the output is as follows?

답변 (1개)

Walter Roberson
Walter Roberson 2022년 3월 11일
No, there is no simple way to do that.
The closest you can get to that is to create an equation instead,
syms A_1 x alpha N_phi
N_phi == A_1*x*cos(alpha)
ans = 
  댓글 수: 3
Walter Roberson
Walter Roberson 2022년 3월 12일
syms A_1 x alpha N_phi
N_phi = A_1*x*cos(alpha);
disp(sym('N_phi') == N_phi)
Paul
Paul 2022년 3월 13일
편집: Paul 2022년 3월 13일
Very, very high ratio of utility to complexity. I've been looking for this
I'll note that for a symfun object it looks like str2sym has to be used.
syms S_p(omega)
S_p(omega) = 5*omega;
disp(str2sym('S_p(omega)') == S_p(omega))
Prototype function to work with a sym or symfun input
syms S_p(omega,alpha)
S_p(omega,alpha) = omega + alpha
S_p(omega, alpha) = 
symdisp(S_p) % symfun input
S_p = omega^2 + alpha^2
S_p = 
symdisp(S_p) % sym input
function symdisp(in)
rhs = in;
lhs = string(inputname(1));
args = argnames(in);
if ~isempty(args)
argstr = "(" + join(string(args),",") + ")";
else
argstr = "";
end
disp(str2sym(lhs + argstr) == rhs)
end

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Conversion Between Symbolic and Numeric에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by