多维整数线性规划使用lingo更方便

dist——欧式距离加权函数(Euclidean distance weight function)

语法:

    Z = dist(W,P)     df = dist('deriv')     D = dist(pos)

描述:dist是一个欧式距离加权函数,给一个输入使用权值,去获得加权的输入。

1、dist(W,P)中:W——S×R的权值矩阵;P——R×Q的矩阵,表示Q个输入(列)向量

2、dist('deriv')返回‘’,因为dist没有导函数。

3、dist也是一个层距离函数,可以被用来寻找一层中神经元之间的距离。

     dist(pos)输入一个参数,pos——N×S的神经元位置矩阵,返回S×S的距离矩阵

例子:  

1、这里,我们定义一个随机权重矩阵W,以及输入向量P,并且计算相应的加权输入Z

       W = rand(4,3);        P = rand(3,1);        Z = dist(W,P)

2、我们定义10个神经元的随机的位置矩阵,并且寻找他们的距离,这些神经元是在3维空间中的。

       pos = rand(3,10);

       D = dist(pos)

 综上可知:

dist可以计算样本集中多个样本两两之间的距离矩阵。

对于图像I,将其分成n个超像素,每个超像素的特征有3维,那么形成3×n的超像素特征矩阵M,每列表示一个超像素。

此时,使用dist(M),就会得到一个n×n的矩阵N,其中的元素Nij表示的是第i个超像素和第j个超像素特征之间的欧式距离。

MATLAB输出变量方法很多,主要包括以下几类。 (1)语句后面不加分号“;”,这是直接输出数值的比较简单的方法。 (2)disp(a)直接在命令窗口显示a变量,这种方法输出和第一种差不多。 (3)fprintf('a=%f',a)格式控制输出,输出'a='然后再显示输出的变量。 (4)save(dir+name,'变量名')保存输出到某个文件中去,可以将数值保存。

点运算是处理的元素之间的运算,而直接的/在矩阵计算中只能处理符合矩阵运算法则的运算。比如作图时的运算用的都是点运算。在对数值计算时,“./”和“/”其实是没有区别的。 例如对于矩阵A=[a b c d],1./A=[1/a 1/b 1/c 1/d],而1/A表示的是A的逆

Y = asind(X)

返回 X 的元素的反正弦 (sin-1)(以度为单位)。该函数的域和范围包含复数值。对于 X 在域 [-1,1] 中的实数元素,asind 返回位于范围 [-90,90] 中的值。对于 X 在此域之外的值,asind 返回复数值。

说明 1 的反正弦正好是 90°。

asind(1)

ans = 90

非线性规划用fmincon

nonlcon是用M文件定义的非线性向量函数c(x),ceq(x)