在做优化问题的时候,遇到一个问题,目标函数不是线性,无法用matlab的线性优化工具箱,而在进行0 1约束时,需要得到所有24个每一个每一列有且只有1个1的矩阵。仅作记录
想法
就是要把4阶单位矩阵的4行按照所有可能的24种排列进行重新组合,这样可以保证无论怎么组合都可以每一行每一列有且仅有一个1
步骤
- 创建一个4x1的元胞m,包含4个数组[1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1]
- 对1 2 3 4进行全排列,得到全排列矩阵a,24行4列
- 进行24次循环,第i次循环取a的第i行作为四个数组的组合方法,作为要得到矩阵的四行

后面加上其他部分,最后end。