我有2个函数,1个创建52张卡片并按顺序放置它们。另一个功能是洗牌。我已经创建了这个套牌,它是有序的。该结构具有属性适合和数量我有麻烦洗牌。我需要创建两个随机整数,其范围从1到我们牌组中的牌数。使用这两个值,我们在这些指数处换牌。重复此交换过程大量(〜1000)次。我不能使用任何MATLAB的功能,如交换或randperm。MATLAB混洗结构数组
这里是我的函数,它在一个结构数组,并返回的洗好的牌的结构数组:
function shuffle(input)
r=randi(1,52)
s=randi(1,52)
for index=1:52
temp=input(r).number;
input(r).number=input(s).number;
input(s).number=temp;
end;
好了...所以在你前面的问题,您不允许使用'randperm',但你可以使用'randi'? – rayryeng
您的代码看起来应该适用于第一次交换。你得到不正确的结果? – beaker
其实,看起来你只是交换号码而不是西装,但这不应该太难修复,对吧? – beaker