How to substitute multiple values in symbolic matrix?

조회 수: 10 (최근 30일)
Amit Kumar
Amit Kumar 2013년 11월 29일
댓글: Youssef El Seblani 2018년 4월 8일
Hi, How to substitute multiple values in symbolic matrix? With function subs, we can substitute only single value in expression. Writing nested subs(subs(...)) can work but it becomes tedious. Here is sample code:
syms x y z w
N=[ 1y+y+z,x/2 - y/3 + z/3, x*y, x+z];
Is there any way to substitute values to w,x,y,z in single line? I guess then I have to define variables like x(1), x(2) etc. and have to use for loop to change values. Is this approach correct or is there any better way?

채택된 답변

Andrei Bobrov
Andrei Bobrov 2013년 11월 29일
syms x y z w
N=[ w+y+z,x/2 - y/3 + z/3, x*y, x+z]
X = sym(['[',sprintf('X(%d) ',1:4),']'])
out = subs(N,[x, y, z, w],X)
  댓글 수: 2
Deepayan Bhadra
Deepayan Bhadra 2016년 12월 5일
Hi,
I wanted some explanation on how the above code works. Say my N is a 6x6 matrix with 5 symbolic variables and I want to evaluate N at one go, for 5 different values of the variables. How do I modify the above answer for that? Thank you.
Karan Gill
Karan Gill 2016년 12월 8일
That answer is wrong. Please do not use string input to sym. Instead:
>> syms x y z w
N=[ 1*y+y+z,x/2 - y/3 + z/3, x*y, x+z];
vars = [w x y z];
newVars = sym('x%d',[1 4]);
subs(N,vars,newVars)
ans =
[ 2*x3 + x4, x2/2 - x3/3 + x4/3, x2*x3, x2 + x4]
Much easier to read and understand. Look up the doc for sym to understand the command I used: https://www.mathworks.com/help/symbolic/sym.html

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

추가 답변 (1개)

Youssef El Seblani
Youssef El Seblani 2018년 3월 31일
편집: Walter Roberson 2018년 3월 31일
clc
clear
syms x y z w
N=[ w+y+z,x/2 - y/3 + z/3, x*y, x+z]
A=sym('X',[1,4])
N(A) = subs(N,[x, y, z, w],A)
for example
N(1,2,3,4)
  댓글 수: 2
Walter Roberson
Walter Roberson 2018년 3월 31일
This will not work if I recall correctly. You cannot use a vector of symbolic variables after a variable name in order to define a function of multiple parameters. Instead each variable must be a separate parameter.

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by