【问题标题】:GNU Octave: How to make sure vectors in random matrix are unique?GNU Octave:如何确保随机矩阵中的向量是唯一的?
【发布时间】:2014-06-21 09:14:21
【问题描述】:

在 GNU Octave 中创建一个随机整数值的 MxN 矩阵非常简单:

K = randi(k, M, N)

其中 k 是最大值。

但是,我要求此矩阵中的每个列向量都应该是唯一的。在 Octave 中是否有一种聪明的方法来确保这一点?当然,我可以遍历所有列并计算所有可能的列向量配对之间的成对差异。但这似乎有点麻烦。

有人有更好的主意吗?

【问题讨论】:

    标签: random matrix unique octave gnu


    【解决方案1】:

    一种选择是使用unique 消除重复列,并将结果的维度与原始矩阵的维度进行比较。请注意,我们需要对矩阵进行转置才能使用 rows 参数来唯一化。

    # Non unique columns
    
    octave> K=[1 2 1; 2 2 2]
    K =
       1   2   1
       2   2   2
    
    octave> isequal(size(unique(K','rows')), size(K'))
    ans = 0
    
    # Unique columns
    
    octave> K=[1 2 3; 2 2 2]
    K =    
       1   2   3
       2   2   2
    
    octave> isequal(size(unique(K','rows')), size(K'))
    ans =  1
    

    【讨论】:

    • 非常感谢,约阿希姆。这很好用。我查看了 unique() 函数,但似乎错过了“行”参数。
    猜你喜欢
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多