Matlab undefined问题

qq_36378403 2017-09-03 02:55:48
报错:
Undefined function 'cost' for input arguments of type 'double'.

Error in fun0 (line 2)
f1 = cost(j)*pij(i,10*(j-1)+k)*t(10*(j-1)+k);

Error in Untitled (line 43)
sum = sum + fun0(i,j,k);
为什么呢,我路径没错

m文件:
cost = [29.255 26.397 22.47 21.07 23.163 30.863 31.556 47.39 49.7 52.1 55.35 55.5 57.01 54.42 63.12 65.59 67.24 63.87 55.61 52.55 47.55 39.69 37 30.51];
t = 0.1:0.1:24;
pij = ones(10,24*10)*inf;
tm = ones(10,24);%开机时间
for i = 1:1:24
tm(i,:) = 0:1:23;
end
tpm = tm;%停机时间
alpha = [1000 970 700 680 450 370 480 660 665 670];
beta = [16.19 17.26 16.60 16.50 19.70 22.26 27.74 25.92 27.27 27.79];
gamma = [0.00048 0.00031 0.00200 0.00211 0.00398 0.00712 0.00079 0.00413 0.002222 0.00173];
pmin = [150 150 20 20 25 20 25 10 10 10];
pmax = [455 455 130 130 162 80 85 55 55 55];
RU = [225 225 50 50 60 60 60 35 35 35];
RD = [225 225 50 50 60 60 60 35 35 35];
Ton = [8 8 5 5 6 3 3 1 1 1];
Toff = [8 8 5 5 6 3 3 1 1 1];
T0 = [8 8 -5 -5 -6 -3 -3 -1 -1 -1];
sum = 0.0;
%answer = ones(2400)*0;
%count = 1;

ti = (pmax - pmin)./RU;
tpi = (pmax - pmin)./RD;
for i = 1:1:10
for j = 1:1:24
for k = 1:1:10
if tm(i,j) <= t(10*(j-1)+k) < tm(i,j) + ti(i);
pij(i,10*(j-1)+k) = pmin(i) + RU(i)*(t(10*(j-1)+k) - tm(i,j));
% answer(count) = fun0(i,j,k);
% count = count + 1;
elseif tm(i,j) + ti(i) <= t(10*(j-1)+k) <= tpm(i,j) - tpi(i)
pij(i,10*(j-1)+k) = pmax(i);
% answer(count) = fun0(i,j,k);
% count = count + 1;
elseif tpm(i,j) - tpi(i) < t(10*(j-1)+k) <= tpm(i,j)
pij(i,10*(j-1)+k) = pmax(i) - RD(i)*(t(10*(j-1)+k)-tpm(i,j));

else
pij(i,10*(j-1)+k) = 0;

end
sum = sum + fun0(i,j,k);
end
end
end

fun0文件:
function f = fun0(i,j,k)
f1 = cost(j)*pij(i,10*(j-1)+k)*t(10*(j-1)+k);
f2 = gamma(i)*pij(i,10*(j-1)+k)^2*t(10*(j-1)+k)^2 + beta(i)*pij(i,10*(j-1)+k)*t(10*(j-1)+k) + alpha(i);

f = f1-f2;
...全文
904 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧