首页 文章

GNU Octave:如何确保随机矩阵中的向量是唯一的?

提问于
浏览
0

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

K = randi(k, M, N)

其中k是最大值 .

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

有没有人有更好的主意?

1 回答

  • 2

    一种选择是使用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
    

相关问题