在matlab中对特定列进行求和

时间:2017-05-17 19:47:10

标签: matlab matrix vectorization

我有一个大矩阵可以说100000x13。 我需要总结这个矩阵的特定列。 例如:

matrix = [0.70  0.30    0   0   0.15    0.21    0.58    0.06    0.00    1.00    0   0   1.00;
      0.70  0.00    0   0   0.00    0.00    0.07    0.06    0.00    0.80    0   0   1.00;
      0.70  0.00    0   0   0.00    0.00    0.58    0.06    0.00    1.00    0   0   0.94];

inputVect = [4 4 3 2];
idx2 = cumsum(inputVect);
idx1 = [1 idx2(1:end-1)+1];

result = (1-sum(matrix(:,idx1(1):idx2(1)),2)) + (1-sum(matrix(:,idx1(2):idx2(2)),2))+(1-sum(matrix(:,idx1(3):idx2(3)),2)) + (1-sum(matrix(:,idx1(4):idx2(4)),2));

事情是inputVect需要是一个函数参数,我不会总是知道它的大小。而且由于矩阵的大小,我也应该避免循环。任何帮助将非常感激。

0 个答案:

没有答案