gpt4 book ai didi

matlab - 提取唯一值

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:34 26 4
gpt4 key购买 nike

我的数据分为两列,如下所示:

A               B1,265848208     3-0,608043611    0-0,285735893    00,006895134     70               7-0,004526196    70,176326617     10-0,159688071    20,22439945      2-0,991045044    10,178022324     1-0,270967397    40,285849994     41,881705539     231,057184204     10NaN             10

对于 B 中的所有唯一值,我想提取 A 列中的相应值并将其移动到新矩阵。然后,我希望计算 A 中所有相应值的平均值,并在回归中用作因变量(由 B 中每个值的观察值加权),其中 B 的公共(public)值是自变量以减少噪声。任何有关如何在 Matlab 中执行此操作的帮助(运行回归除外)都会很棒!

谢谢

奥斯卡

最佳答案

这是一个有效的解决方案:

X = [
1.265848208 3
-0.608043611 0
-0.285735893 0
0.006895134 7
0 7
-0.004526196 7
0.176326617 10
-0.159688071 2
0.22439945 2
-0.991045044 1
0.178022324 1
-0.270967397 4
0.285849994 4
1.881705539 23
1.057184204 10
NaN 10
];

%# unique values in B, and their indices
[valB,~,subs] = unique(X(:,2));

%# values of A for each unique number in B (cellarray)
valA = accumarray(subs, X(:,1), [], @(x) {x});

%# mean of each group
meanValA = cellfun(@nanmean, valA)

%# perform regression here...

结果:

%# B values, mean of corresponding values in A, number of A values
>> [valB meanValA cellfun(@numel,valA)]
ans =
0 -0.44689 2
1 -0.40651 2
2 0.032356 2
3 1.2658 1
4 0.0074413 2
7 0.00078965 3
10 0.61676 3
23 1.8817 1

关于matlab - 提取唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7177543/

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