随机填充矩阵而不进行行重复

时间:2017-06-05 14:22:38

标签: matrix random

请帮忙。我是matlab脚本的新手,需要一些帮助。我有一系列数字:

A = [1 1 1 2 2 2 3 3 3 4 4 4 5]

我希望随机填充到8x12矩阵中,而在同一行中没有相同的数字。最后,我想要所有"空" 8×12矩阵的单元用0或纳米填充。

一个例子可能是:

结果=

3 1 5 2 4 5 0 0 0 0 0 0

4 1 3 2 0 0 0 0 0 0 0 0

1 3 4 2 0 0 0 0 0 0 0 0

1 个答案:

答案 0 :(得分:0)

  • 确保A已排序。 A = sort(A) more info
  • 制作一个空矩阵。
  • 对于A中的每个数字:more info
    • 找出有多少重复的数字 - > for循环在A中,start是数字的第一个出现,end是最后一个,n = last-first + 1
    • 查找所有有额外数字空间的行,只需执行双循环并跟踪零元素
    • 随机选择n行 - > more info。为此,请创建所有可用行indix的数组R.然后使用提供的函数在1..size(R,2)之间取一个随机样本并获取所有值,现在你的行为indixes。
    • 随机选择每个选定行中的一个空白点并指定数字