我有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