在GNU Octave中创建随机整数值的MxN矩阵非常简单:
K = randi(k, M, N)
其中k是最大值 .
但是,我要求此矩阵中的每个列向量都应该是唯一的 . 有没有一种聪明的方法可以确保在Octave中实现这一目标?当然,我可以遍历所有列并计算所有可能的列向量配对之间的成对差异 . 但这似乎有点麻烦 .
有没有人有更好的主意?
一种选择是使用unique来消除重复的列,并将结果的维度与原始矩阵的维度进行比较 . 请注意,我们需要转置矩阵才能将 rows 参数用于唯一 .
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
1 回答
一种选择是使用unique来消除重复的列,并将结果的维度与原始矩阵的维度进行比较 . 请注意,我们需要转置矩阵才能将
rows
参数用于唯一 .