[已答复] 关于for循环和sum函数的转换问题?

[复制链接]
Claire633 发表于 2022-6-21 16:12:40
本帖最后由 Claire633 于 2022-6-21 17:04 编辑

利用for循环运行时间太慢,转化成sum求和的形式,求解运行出来的结果相差很多,希望能帮忙看一下什么问题。

C_UP,C_DOWN,C_low,C_delta定义为J行的列向量。Pw_fore、Pw、lc定义为T行的列向量。
%%for循环
cost=0;
for j=1:J
     for h=1:T

         cost=cost+C_UP(j)*S_UP(j,h)+C_DOWN(j)*S_DOWN(j,h)...
             +C_low(j)*A_low(j,h)*S_ON(j,h)+C_delta(j)*(P(j,h)-A_low(j,h)*S_ON(j,h))...
             +VCC*(Pw_fore(h)-Pw(h))+LCC*lc(h);

         
     end
end
%% sum求和
cost=sum(C_UP'*S_UP)+sum(C_DOWN'*S_DOWN)...
            +sum(C_low'*(A_low.*S_ON)+C_delta'*(P-A_low.*S_ON))...
            +sum(VCC*(Pw_fore-Pw)+LCC*lc);


5 条回复


TouAkira 发表于 2022-6-21 16:47:57
这甚至都称不上MATLAB问题了,属于小学生级别的检查错漏。
你左边锅中扔糖,右侧碗里撒盐,然后问为啥味道不一样…问出这种问题来之前,麻烦先核实两边用的是同样的原料好不好!
for j=1:J
     for h=1:T
         cost=cost+C_UP(j)*S_UP(j,h)+C_DOWN(j)*S_DOWN(j,h)...
             +C_low(j)*A_low(j,h)*S_ON(j,h)+C_low(j)*(P(j,h)-A_low(j,h)*S_ON(j,h))...
             +VCC*(Pw_fore(h)-Pw(h))+LCC*lc(h);         
     end
end
%% sum求和
cost=sum(C_UP'*S_UP)+sum(C_DOWN'*S_DOWN)...
            +sum(C_low'*(A_low.*S_ON)+C_delta'*(P-A_low.*S_ON))...
            +sum(VCC*(Pw_fore-Pw)+LCC*lc);

Claire633 发表于 2022-6-21 16:58:43
本帖最后由 Claire633 于 2022-6-21 17:02 编辑
TouAkira 发表于 2022-6-21 16:47
这甚至都称不上MATLAB问题了,属于小学生级别的检查错漏。
你左边锅中扔糖,右侧碗里撒盐,然后问为啥味道 ...

谢谢提醒,我在上面声明变量的时候错误粘贴了,原程序是对应上的。我修改一下问题,谢谢你!



TouAkira 发表于 2022-6-21 17:11:17
Claire633 发表于 2022-6-21 04:58
谢谢提醒,我在上面声明变量的时候错误粘贴了,原程序是对应上的。我修改一下问题,谢谢你!

以附件给出必要数据

发帖前,请先仔细看发帖提示和置顶帖子,尤其是《 你知道如何正确提问么(超链接,自己点进去看) 》、《 为什么你的帖子没人回(超链接) 》这些帖子

请先去看一看,想一想,最最基本的"方便你自己、也方便回答者"的几条指南
粘贴一个简单的程序.别人可以直接复制运行(尽量避免使用附件,Simulink模型除外)
对了还有同学把数据/代码的截屏按图片方式传上来发帖的,表示不是每个人都有耐心按你的图把代码敲出来的。这种情况通常也会导致没人回答。
都做到了吗?
尤其是你这种发帖不完整也不检查的,明明要问甲代码为何有问题,结果粘贴个田出来,这属于浪费别人的时间和帮你忙的热心。

Claire633 发表于 2022-6-21 17:44:42
TouAkira 发表于 2022-6-21 17:11
请以附件给出必要数据。

发帖前,请先仔细看发帖提示和置顶帖子,尤其是《 你知道如何正确提问么(超链 ...

谢谢你的时间和热心!以后发帖我会注意的!
您说话的语气很冲。为什么要带这么大的情绪呢?
祝你心情愉快!

TouAkira 发表于 2022-6-21 18:16:49
Claire633 发表于 2022-6-21 05:44
谢谢你的时间和热心!以后发帖我会注意的!
您说话的语气很冲。为什么要带这么大的情绪呢?
祝你心情愉快 ...

好情绪当然是留给仔细看置顶、按照置顶建议把问题描述清楚的提问者的。
置顶写明了的基本建议不看,自己发的信息不全,发错了也不检查,你对自己的课题就这种不上心的态度,导致我花了几分钟帮你纠错,最后你告诉我你贴错代码了,本来要问的不是前面所问的。
你都浪费我时间了,还指望我能对你有什么好情绪吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表