How to differentiate a series of functions denoted by varying a parameter i=1,2 in (h_i)?

1 Ansicht (letzte 30 Tage)
I typed the following code and command window displays unrecognised function h_i. If I remove the outer loop and replace "i" with some number, say "2", then it displays unrecognised function x_j. What's the mistake?
clc
clear all
syms x_1 x_2
h_1(x_1,x_2)=x_1+(x_2)*(x_1);
h_2(x_1,x_2)=x_2+x_1*x_2^2;
for i=1:2
for j=1:2
diff(h_i,x_j)
end
end

Akzeptierte Antwort

darova
darova am 23 Feb. 2020
Bearbeitet: darova am 23 Feb. 2020
Mistake that h_1 and h_i and different variables
m1stake = 2;
m2stake = 3;
for i = 1:2
disp(mistake) % doesn't work
end
Use arrays and cells
clc
clear all
syms x_1 x_2
h_1(x_1,x_2)=x_1+(x_2)*(x_1);
h_2(x_1,x_2)=x_2+x_1*x_2^2;
X = {x_1 x_2};
H = {h_1 h_2};
for i=1:2
for j=1:2
diff(H{i},X{j})
end
end

Weitere Antworten (1)

Image Analyst
Image Analyst am 23 Feb. 2020
Don't use a loop. For just 4 cases, just write them out
h_1(x_1,x_2) = x_1 + (x_2) * (x_1);
h_2(x_1,x_2) = x_2 + x_1 * x_2^2;
diff(h_1,x_1)
diff(h_1,x_2)
diff(h_2,x_1)
diff(h_2,x_2)
  3 Kommentare
Image Analyst
Image Analyst am 23 Feb. 2020
You don't have 56 separate and differently named variables, do you? If so, you really need to learn how to use arrays.
Asit Srivastava
Asit Srivastava am 24 Feb. 2020
I have 8 functions in 7 variables. Yeah, I am learning MATLAB.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by