会说话的手机桌面宠物:matlab中怎么表示这个

来源:百度文库 编辑:高校问答 时间:2024/05/06 03:55:36
Xij={0,1}
y={5,6,7,8,9,10}
y+Xij<=6 怎么表示
Xij={0,1} i=1,2,3 j=1,2,3,4,5,6,7,8
y+∑Xij≤6
y为正整数

你需要的集合是 {(0,5), (0,6), (1,5)}
如果Xij和y是非零的正整数,还有个更简便的办法,如果Xij和y的数没限制,则我得思路是计算任意两个元素的和,然后从中找到小于等于6的元素对。
计算时候先由Xij和y得到两个矩阵
[0,1;0,1;0,1;0,1;0,1;0,1]和
[5,6,7,8,9,10;5,6,7,8,9,10]',然后计算和。

Xij=[0,1];
y=[5,6,7,8,9,10];

%计算任意两点的和
Xij_temp = padarray(Xij, length(y)-1, 'replicate','post');
y_temp = padarray(y, length(Xij)-1, 'replicate','post');

temp = Xij_temp + y_temp';

%从中找到小于等于6的座标
[ii, jj] = find(temp<=6);

%根据座标从原集合中找到元素。
result = [Xij(ii); y(jj)];

结果是
>>
result =

0 1 0
5 5 6

好复杂呀

俺不会