您的位置:首页 > 编程语言 > MATLAB

Matlab问答day9

2016-08-26 20:43 169 查看
1. repmat函数

这个函数我不太熟悉,先前只知道是类似于reshape类的整合矩阵形状的函数,今天大开眼界,看到了一个新奇的用法,因此特地研究了一下。

简单说来,它就是一个复制矩阵的函数:

clear

clc

N = 2;

K = 3;

%随机构造矩阵

A = randi([0,1],N,K)

B = repmat(A,2,3)

当然,还可以复制三维矩阵。

新奇的用法即为:

按列找出一个矩阵的最大值的位置,只一行代码:

 [(A==repmat(max(A),size(A,1),1))]

首先按列找出最大值,并且按原矩阵大小复制。由于两个矩阵大小相同,则可以比较,因此直接比较,相等为1,不等为0。

2. Matlab中的0-1优化

先前每当遇到这个问题,我都头疼,今天偶然一看,竟然有一些明白,立刻写写:

intlinprog即为0-1优化函数

Matlab的优化工具箱的整体风格就如下:

[x,fval]=intlinprog(fun,intcon,A,b,Aeq,beq,lb,ub)

其中A,b为不等式约束;Aeq,beq为等式约束,取行数为条件数;lb,ub为上下限;intcon即为此时的0-1变量。

fun为目标函数的[系数矩阵],因为只能求极小值,若有极大值需取负数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 优化