| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
|  | 
|  2007-08-20, 09:53 | #1 | 
| 初级会员 注册日期: 2007-08-20 
					帖子: 4
				声望力: 0  |  【求助】如何在matlab中设置变量为0-1变量? 
			
			我在建立一个混合整数的优化模型,其中部分变量为0-1变量,其他部分变量为连续变量。 请问如何在MATLAB中间设置0-1变量? | 
|   |   | 
|  2007-08-21, 16:52 | #2 | 
| 普通会员 注册日期: 2007-05-19 
					帖子: 51
				声望力: 20  |   
			
			固定步长还素随机生成? 0:r:1; 为以r为步长生成~ round(m,n); 为随机生产,m,n为矩阵的维数。 | 
|   |   | 
|  2007-08-21, 19:46 | #3 | 
| 初级会员 注册日期: 2007-08-20 
					帖子: 4
				声望力: 0  |   
			
			谢谢chenhuips2! 我的目标是建立一个混合非线性优化问题,并对其应用matlab求解。 在这个优化问题中,有两类变量,一类是连续变量,比如其取值范围为[0,5],而另一类变量为0-1变量,也就是说这些变量要么为1,要么为0。 现在的问题是,我在matlab的程序中,如何把另一类0-1变量约束输入到程序中。 | 
|   |   | 
|  2007-08-21, 19:46 | #4 | 
| 初级会员 注册日期: 2007-08-20 
					帖子: 4
				声望力: 0  |   
			
			现在的问题是,我在matlab的程序中,如何把另一类0-1变量约束设置在matlab程序中
		 | 
|   |   | 
|  2007-08-22, 17:20 | #5 | 
| 普通会员 注册日期: 2007-05-19 
					帖子: 51
				声望力: 20  |   
			
			[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的函数,具体不清晰了~ 自己找找~ | 
|   |   |