У меня есть 2 функции, 1 которые создают колоду из 52 карт и ставят их в порядок. Другая функция перетасовывает карты. Я создал колоду, и она в порядке. В структуре есть атрибуты и номер, с которыми мне сложно перемешать. Мне нужно создать два случайных числа, которые варьируются от 1 до количества карт в нашей колоде. Используя эти два значения, мы меняем карты по этим индексам. Повторите этот процесс обмена большим (~ 1000) числом раз. Я не могу использовать любые функции MATLAB, такие как swap или randperm.MATLAB shuffling structure array
Вот моя функция, которая принимает в массиве структуры и возвращает структуру массива перемешиваются карт:
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;
Ok ... так что в вашем предыдущем вопросе, вы не разрешали использовать 'randperm', но вы можете использовать' randi'? – rayryeng
Ваш код выглядит так, как будто он должен работать для первого свопа. Вы получаете неправильные результаты? – beaker
На самом деле, похоже, что вы только меняете номер, а не костюм, но это не должно быть слишком сложно исправить, верно? – beaker