如何根据另一个向量将矩阵拆分为多个矩阵

如果

A = [1 2 3; 4 5 6; 7 8 9]

B = [1 2 2]

我发现

  • A(B == 1, 🙂 返回 [1 2 3],而
  • A(B == 2, 🙂 返回 [4 5 6; 7 8 9]

这是因为

  • B == 1 返回 [1 0 0],而
  • B == 2 返回 [0 1 1]

基于上述A和B的例子,有没有更简单的方法可以在一步中得到最终的矩阵 [1 2 3] 和 [4 5 6; 7 8 9],即不使用for循环。

目标是生成K-means聚类问题中每个示例(A中的行)被分配到的簇的质心。我考虑将结果矩阵传递给mean()函数来生成质心。


回答:

你可以得到一个单元数组

A = [1 2 3; 4 5 6; 7 8 9];B = [1 2 2];    arrayfun(@(lev) A(B==lev, :), unique(B), 'UniformOutput', false)

返回

ans = {  [1,1] =     1   2   3  [1,2] =     4   5   6     7   8   9}

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注