gpt4 book ai didi

matlab - 在 MATLAB 中,如何计算与条件关联的索引值的唯一数量?

转载 作者:行者123 更新时间:2023-12-02 02:29:25 24 4
gpt4 key购买 nike

我有一个二维矩阵,第一列包含实验条件的索引,第二列包含相应实验的索引,即 [condition experiment]。每行对应一个有趣的事件(一个实验可以产生一个或多个事件)。

计算条件和事件很容易。我想知道如何计算每个给定条件下有多少独特的实验。

这是我现在使用 ACCUMARRAY 的解决方案,但我认为应该有一个更简单或更优雅的解决方案:

idxList = [1 1;...  %# There are two experiments for condition 1...
1 2;...
1 2;...
2 1;... %# ...and 1 experiment for condition 2.
2 1];
accumarray(idxList(:,1),idxList(:,2),[],@(x)length(unique(x)))
ans =
2
1

最佳答案

这里有几个选择:

  • 将整个矩阵 idxList 用于 ACCUMARRAYsubs 参数(即为累加指定行索引和列索引),然后对结果行中的非零数求和:

    experCounts = sum(accumarray(idxList,1) > 0,2);
  • 使用 UNIQUEidxList 上首先删除重复的行,这简化了对 ACCUMARRAY 的调用:

    idxList = unique(idxList,'rows');
    experCounts = accumarray(idxList(:,1),1);

关于matlab - 在 MATLAB 中,如何计算与条件关联的索引值的唯一数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4372982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com