matlab 怎样定义一个数组,它的每个元素是一个向量,且向量长度不等?

如题所述

排序不等式是:倒序<=乱序<=顺序;所以最好是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求解。这属于运筹学问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-30
定义一个结构体变量
C
=
struct(field1,value1,field2,value2,...),
其中field标识字段字符串
比如
a
=
[1
2
3
4];
b
=
[5
6];
则令
c
=
struct('a',a,'b',b);
结果就是:
c
=
a:
[1
2
3
4]
b:
[8
7]
也可以用cell数组实现,见cell和cell2mat的matlab帮助
相似回答