Matlab,随机单元阵列

时间:2014-04-29 10:58:33

标签: arrays matlab cell

我有一个单元格数组Q,包含问题。和一个逻辑向量包含1/0为真/假,与Q的顺序相同:

Q = {'A ball is squared: ' 'My computer is slow: ' 'A triangle has 3 corners: '};
A = {0 1 1};

然后我会创建一个Q_random,包含来自Q的问题,但是按随机顺序排列,A_random包含响应Q_random的逻辑数字。我已经提出了这个代码,但我不确定这是最好的方法。

我可以使用更简单有效的其他方法吗?

Q = {'A ball is squared: ' 'My computer is slow: ' 'A triangle has 3 corners: '};
A = {0 1 1};
Q_random = cell(1,numel(Q));
A_random = cell(1,numel(Q));

i = 1;
while (i <= numel(Q));
random_number = randi(numel(Q));
if isempty(Q_random{random_number});
    Q_random(random_number) = Q(i);
    A_random(random_number) = A(i);
    i = i + 1;
else
end    

1 个答案:

答案 0 :(得分:2)

我会使用randperm生成随机排序的索引

rand_ind=randperm(length(Q));

然后使用随机索引生成随机置换的单元阵列

Q_random=Q(rand_ind);
A_random=A(rand_ind);

This对以前的相关问题的回答也值得一看。