Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2007-08-20
帖子: 4
声望力: 0 ![]() |
![]()
我在建立一个混合整数的优化模型,其中部分变量为0-1变量,其他部分变量为连续变量。
请问如何在MATLAB中间设置0-1变量? |
![]() |
![]() |
![]() |
#2 |
普通会员
注册日期: 2007-05-19
帖子: 51
声望力: 19 ![]() |
![]()
固定步长还素随机生成?
0:r:1; 为以r为步长生成~ round(m,n); 为随机生产,m,n为矩阵的维数。 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2007-08-20
帖子: 4
声望力: 0 ![]() |
![]()
谢谢chenhuips2!
我的目标是建立一个混合非线性优化问题,并对其应用matlab求解。 在这个优化问题中,有两类变量,一类是连续变量,比如其取值范围为[0,5],而另一类变量为0-1变量,也就是说这些变量要么为1,要么为0。 现在的问题是,我在matlab的程序中,如何把另一类0-1变量约束输入到程序中。 |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2007-08-20
帖子: 4
声望力: 0 ![]() |
![]()
现在的问题是,我在matlab的程序中,如何把另一类0-1变量约束设置在matlab程序中
|
![]() |
![]() |
![]() |
#5 |
普通会员
注册日期: 2007-05-19
帖子: 51
声望力: 19 ![]() |
![]()
[0,5]
只要再rand(m,n)*5就OK了~ 对了上面那个命令手误打错了不是round,是rand。 至于0-1的约束不清楚你0,1是如何分布的~ 如果是固定分布那么你就手敲键盘或者做到Excel上读取进去~ 如果是随机分布也容易,用rand生成后用个简单循环把值转成0-1就可以了~ 例如大于0.5就为1,小于0.5就为0。 记得MATLAB中有专门生成0-1的函数,具体不清晰了~ 自己找找~ |
![]() |
![]() |