matlab 向量排序。

matlab 向量排序。,第1张

排序不等式是:倒序<=乱序<=顺序;所以最好是A和B都排序成顺序才会得到最大值。但如果A保持不动,让B排序使得得到的乘积最大,这其实贺档是一个整数二元线性规划问题。你可以设一个矩阵C,这个矩阵是7x7的,行元素表示对应A中1到7的位置,列元素的含义是对应B元素不排序的值。在7x7矩阵中aij表示:A中从头开始第i个元素与B中从头开始昌携第j个元素相对应,则在此处取值为1,否则取值为零。而7x7矩阵每一行求和为1,每一列求和为1。这样只有求解max(CA)就ok。解决这样的二元整数规划,你耐拍伏可以尝试使用匈牙利算法,或者直接使用Lingo或者Matlab求解。这属于运筹学问题。

举个例子,希望有所帮助。返孙扒代码function main()

% By lyqmath

clcclear allclose all

A = [1 3 5 2 6 8 4]

mA = SortData(A, 1)

mA = SortData(A, 2)function mA = SortData(A, type)

% 获取矩阵的最大值

% 输入参数:凯雹

% A——向量

% type——排序类型:1为升序、0为降序

% 输出参数:

% mA——排序后的向量if nargin <2

% 默认为升序排序

type = 1

end

A = A(:)'

if type == 2

mA = sort(A, 'descend')

else

mA = sort(A)

end结果function main()

% By lyqmath

clcclear allclose all

A = [1 3 5 2 6 8 4]

mA = SortData(A, 1)

mA = SortData(A, 2)function mA = SortData(A, type)

% 获取矩阵的最大值

% 输入参数:

% A——向量

% type——排序类型:1为升序、0为降序

% 输出参数:

% mA——排序后的向量if nargin <2

% 默认为升序排序

type = 1

end

A = A(:)'漏昌

if type == 2

mA = sort(A, 'descend')

else

mA = sort(A)

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8241254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存