Matlab:累积的发生频率

时间:2015-07-24 16:49:34

标签: matlab

我正在研究计算矩阵A的累积出现频率。

考虑到我们有一个具有以下值的矩阵

A = [...
    -76     23    -0.23; ...
    -0.23   23    -0.23; ...
    -76     23    -0.23; ...
    -0.23   21     0.23; ...
    -76     23    -0.23  ];

*请注意,第1,2和4行是相同的。

如何在矩阵中进行A(3,:)的CFO(发生累计频率)?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,我不认为有一种超级干净的方法可以做到这一点。但它可能看起来像这样:

modelRow = A(3,:);
rowMatches = A(:,1)==modelRow(1)  &  A(:,2)==modelRow(2)  &  A(:,3)==modelRow(3);
cumulativeOccurance = cumsum(rowMatches);

结果是:

cumulativeOccurance =
     1
     1
     2
     2
     3

答案 1 :(得分:0)

即使@Pursuit答案应该有效,我也想提议我的

pattern = -0.23   21   0.23;

CFO = sum(ismember(A, pattern, 'rows')) / size(A,1);

如果您不希望A(3,:)包含在您的首席财务官中,请执行

CFO = (sum(ismember(A, pattern, 'rows')) - 1) / size(A,1);