How to substitute multiple values in symbolic matrix?
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Amit Kumar
le 29 Nov 2013
Commenté : Youssef El Seblani
le 8 Avr 2018
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?
0 commentaires
Réponse acceptée
Andrei Bobrov
le 29 Nov 2013
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 commentaires
Deepayan Bhadra
le 5 Déc 2016
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
le 8 Déc 2016
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
Plus de réponses (1)
Youssef El Seblani
le 31 Mar 2018
Modifié(e) : Walter Roberson
le 31 Mar 2018
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 commentaires
Walter Roberson
le 31 Mar 2018
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.
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!