Need help substituting vector variables into symbolic expression
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello!
I have a symbolic expression into which I would like to substitute two vector variables:
syms x w1 b1
l1 = tanh(x * w1 + b1);
w1_actual = rand(1,10);
temp = subs(l1,w1,w1_actual);
This correctly generates a 1x10 symbolic array, but when performing the second substitution:
b1_actual = zeros(1,10);
l1_sym = subs(temp,b1,b1_actual);
This generates a 1x100 symbolic array because the 1x10 vector is expanded in each element.
I want the result of both substitutions to yield a 1x10 array, as is the case for the expression:
l1 = x * w1_actual + b1_actual;
I tried making both substitutions simultaneously:
l1 = subs(l1,[w1,b1],[w1_actual,b1_actual]);
but this resulted in the error:
Inconsistency between sizes of second and third arguments.
I also tried declaring the symbols as symmatrices:
syms x [1 1] matrix
syms w1 [1 10] matrix
syms b1 [1 10] matrix
But this prevents subs() from performing any substitutions for either the w1 and b1 variables.
Thank you in advance!
1 commentaire
Aquatris
le 3 Fév 2024
Seems to work fine however when substituting matrices, you need to clarify where a matrix starts and ends, which is done via cell arrays
syms x w1 b1
l1 = tanh(x * w1 + b1);
w1_actual = rand(1,10);
b1_actual = zeros(1,10);
temp = subs(l1,[w1 b1],{w1_actual, b1_actual});
size(temp)
Réponses (3)
Torsten
le 3 Fév 2024
syms x w1 b1
l1 = tanh(x * w1 + b1);
b1_actual = zeros(1,10);
w1_actual = rand(1,10);
l1_actual = arrayfun(@(i)subs(l1,[w1,b1],[w1_actual(i),b1_actual(i)]),1:10)
0 commentaires
Star Strider
le 3 Fév 2024
Modifié(e) : Star Strider
le 3 Fév 2024
I may be missing something in your problem statement.
Is this what you want to do —
syms x w1 b1
l1 = tanh(x * w1 + b1);
w1_actual = randi(9,1,10)
b1_actual = randi(9,1,10)
temp = subs(l1,{w1,b1},{w1_actual,b1_actual})
.
0 commentaires
Voir également
Catégories
En savoir plus sur Special Values dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!