-1

试图通过扩展我之前的问题来了解如何操作具有以下元素的两个矩阵(我将尝试简化我的问题以便更容易回答):

第一个矩阵:

          8 2 5
Mat1 = [  3 7 8 ] 
          6 5 0 

第二个矩阵:

         Value(Mat1(1)) Value(Mat1(4)) Value(Mat1(7))
Mat2 = [ Value(Mat1(2)) Value(Mat1(5)) Value(Mat1(8)) ]
         Value(Mat1(3)) Value(Mat1(6)) Value(Mat1(9))

假设第二个矩阵值是:

              18 22 47
Val.Mat2 = [  28 84 82 ] 
              56 65 0

现在我们对 Val.Mat2: 的值求和VM2CS = cumsum(sort(Val.Mat2)),并为每列设置一个汇总约束,并将cstr = 100;约束的结果收集在矩阵上:result = sum(VM2CS <= cnstrn);

         18  22   0
VM2CS =  46  87  47
        102 171 129 

result = 2 2 2                            

####################### 问题 (复杂性递增的两个方面) #################


  • 看点一:cumsum如何忽略零(0)的元素;所以结果是: result = 2 2 1。我试过:result = sum(cumsum(sort(VM2CS))<=cstr ~=0)没有成功。
  • 方面二:Mat1元素在Mat2矩阵内重复(pe Mat1(1) 元素与 Mat1(8) 相同,但值不同,分别为 18 和 82。Mat1(6) 和 Mat1(7) 也重复。)。我如何才能在具有透视的最终结果中仅使用一次相同的元素,以使每行具有尽可能多的唯一元素(不包括零(0))?预期结果应该是:
                     18 22 47
 result_expected = [ 28 54  0 ]
                      0  0  0

我知道第二方面不容易回答,但指出解决方案也应该会有所帮助。Thomas G. Robertazzi教授在规划电信网络中提出了同样有用的示例,但我现在没有这本书,我买不起。

4

1 回答 1

1

对于第一部分,只需使用:

result = sum((VM2CS <= cstr) & (VM2CS ~= 0));

对于第二部分,为什么值 56 消失了?

于 2012-12-06T19:38:30.770 回答