情景初始化

背景介绍

问题背景:两阶段鲁棒优化模型中,一天24个时刻,每个时刻都有上边界或下边界的0-1状态。在给定Tao值下生成随机情景。
实现目标:在给定维度下,生成给定个数个随机值。

输入

Tao=[1 24];

初始值

生成给定长度的0矩阵
chushizhi=zeros(length(Tao),48);

随机给定0-1值
chushizhi=randi([0,1],length(Tao),48);

保证同一时刻不会同时达到上下边界,如果同时达到,令其取为上边界。
for j=1:length(Tao)
for i=1:24
if chushizhi(j,i)+chushizhi(j,i+24)~=1
chushizhi(j,i)=1;chushizhi(j,i+24)=0;
end
end
end

调整

遍历每一个维度,保证Tao值。
for n=1:length(Tao)
i=1;
while sum(chushizhi(n,:))<Tao(n)
chushizhi(n,i)=1;
i=i+1;
end
while sum(chushizhi(n,:))>Tao(n)
chushizhi(n,i)=0;
i=i+1;
end
end
如果超了,令第一个为1的改为0;如果不够,令第一个为0的改为1。直至条件满足。

完整展示

代码

Tao=[1 24];
chushizhi=zeros(length(Tao),48);
chushizhi=randi([0,1],length(Tao),48);
for j=1:length(Tao)
    for i=1:24
        if chushizhi(j,i)+chushizhi(j,i+24)~=1
            chushizhi(j,i)=1;chushizhi(j,i+24)=0;
        end
    end
end
for n=1:length(Tao)
    i=1;
    while sum(chushizhi(n,:))<Tao(n)
        chushizhi(n,i)=1;
        i=i+1;
    end
    while sum(chushizhi(n,:))>Tao(n)
        chushizhi(n,i)=0;
        i=i+1;
    end
end

结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱吃沙糖桔

给我一份爱,会还你一份情的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值