How to put any variable name automatically?

1 次查看(过去 30 天)
In this program,
a = 1 ;
b=2;
c = zeros(20,1);
d= zeros(20,1);
for k = 1:20
c(k) = (b+k)^2 + (a+k)^3;
d(k) = (b+k)^2 - (a+k)^3;
end
[maxobjective, iteration1] = max((c));
but i want to pre define objective function, means
[maxobjective, iteration1] = max((c)); or
[maxobjective, iteration1] = max((d));
put automatically like below.
objfun = c; %or d
a = 1 ;
b=2;
c = zeros(20,1);
d= zeros(20,1);
for k = 1:20
c(k) = (b+k)^2 + (a+k)^3;
d(k) = (b+k)^2 - (a+k)^3;
end
[maxobjective, iteration1] = max((objfun));

采纳的回答

Walter Roberson
Walter Roberson 2016-8-7
Use the same variable for both, but make it a cell array. And make objfun the index of the cell to use.
  2 个评论
Triveni
Triveni 2016-8-8
Ya, done.
objfun = 1; %or 2
a = 1 ;
b=2;
c = zeros(20,1);
d= zeros(20,1);
for k = 1:20
c(k) = (b+k)^2 + (a+k)^3;
d(k) = (b+k)^2 - (a+k)^3;
end
if objfun == 1
[maxobjective, iteration1] = max((c));
end
if objfun == 2
[maxobjective, iteration1] = max((d));
end
Walter Roberson
Walter Roberson 2016-8-8
objfun = 1; %or 2
a = 1 ;
b=2;
c_d{1} = zeros(20,1);
c_d{2} = zeros(20,1);
for k = 1:20
c_d{1}(k) = (b+k)^2 + (a+k)^3;
c_d{2}(k) = (b+k)^2 - (a+k)^3;
end
[maxobjective, iteration1] = max(c_d{objfun});

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by