# How to extract coefficients of custom variables in symbolic expression in MATLAB?

조회 수: 16 (최근 30일)
FAISAL ALQARNI . 2023년 7월 25일
댓글: Chunru . 2023년 7월 26일
I want to extract the coefficient of i_B from the attached symbolic experession called omega_B and call it p for example, how to do that? ##### 댓글 수: 2이전 댓글 1개 표시이전 댓글 1개 숨기기
FAISAL ALQARNI 2023년 7월 25일
I found a way to achieve this using Symbolic substitution subs
Since the expression is already factored in i_B, j_B and k_B, the coefficient of any of these symbolic variables can be simply extracted by setting its value to 1 and setting the other variables to 0 using subs
Example:
Extracting the coefficient of i_B from a symbolic expression called omega_B and call it p
syms psi phi theta i_B j_B k_B psi_dot phi_dot theta_dot
omega_B = (phi_dot - psi_dot*sin(theta))*i_B + (theta_dot*cos(phi) + psi_dot*cos(theta)*sin(phi))*j_B + (psi_dot*cos(phi)*cos(theta) - theta_dot*sin(phi))*k_B
omega_B = p = subs(omega_B,[i_B,j_B,k_B],[1,0,0])
p = Please let me know if there is a better approach.

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

### 채택된 답변

Paul 2023년 7월 25일
편집: Paul 님. 2023년 7월 25일
syms psi phi theta i_B j_B k_B psi_dot phi_dot theta_dot
omega_B = (phi_dot - psi_dot*sin(theta))*i_B + (theta_dot*cos(phi) + psi_dot*cos(theta)*sin(phi))*j_B + (psi_dot*cos(phi)*cos(theta) - theta_dot*sin(phi))*k_B
omega_B = [c,t] = coeffs(omega_B,i_B)
c = t = p = c(t == i_B)
p = Get all the components simultaneously. Using both output arguments of coeffs forces the first output argument to be in the desired order (at least I think that's how it works)
clear c t
[omega,t] = coeffs(omega_B,[i_B j_B k_B])
omega = t = p = omega(1); q = omega(2); r = omega(3); % if individual components are needed as individual variables
[p;q;r]
ans = [p,q,r]=struct('omega',num2cell(omega)).omega % one line approach
p = q = r = 댓글을 달려면 로그인하십시오.

### 추가 답변 (1개)

Chunru 2023년 7월 25일
편집: Chunru 님. 2023년 7월 25일
Let iB=1, jB=0 and kB=0. Then compute omegaB.
##### 댓글 수: 3이전 댓글 2개 표시이전 댓글 2개 숨기기
Chunru 2023년 7월 26일
Exactly.

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

### 카테고리

Help CenterFile Exchange에서 Number Theory에 대해 자세히 알아보기

### Community Treasure Hunt

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

Start Hunting!