How to avoid dynamic variable names when I need to differentiate a function with lots of variables?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello
Take my code for example:
n = 8;
syms f(x) distsq(x)
X=sym('x',[1 n-1]);
syms(X);
P = zeros(1,n)+0.1;
f(X) = sqrt(sum(X));
distsq(X) = sum((X-P(1:end-1)).^2) + (f-P(end)).^2;
grad_distsq = jacobian(distsq,X);
equations = grad_distsq == 0;
bounds = X > 0;
bounds = [bounds X<1];
equations = [equations bounds];
S = solve(equations,X);
The code runs fine, but I have
variables and it's troublesome to do operations with the solution structure S, which has
fields.
How should I remove dynamic names from the code?
1 Kommentar
Matt J
am 20 Sep. 2019
Bearbeitet: Matt J
am 20 Sep. 2019
What names do you want instead? You chose the names in the line
X=sym('x',[1 n-1]);
You could have used any other name, e.g.,
X=sym('frank',[1 n-1]);
>> S = solve(equations,X)
S =
struct with fields:
frank1: [1×1 sym]
frank2: [1×1 sym]
frank3: [1×1 sym]
frank4: [1×1 sym]
frank5: [1×1 sym]
frank6: [1×1 sym]
frank7: [1×1 sym]
Antworten (0)
Siehe auch
Kategorien
Mehr zu Calculus finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!