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

时间:2014-06-21 09:14:22

标签: random matrix unique octave gnu

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

K = randi(k, M, N)

其中k是最大值。

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

有没有人有更好的主意?

1 个答案:

答案 0 :(得分: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