【问题标题】:Matlab, Random Cell ArrayMatlab,随机单元阵列
【发布时间】:2014-04-29 19:19:09
【问题描述】:

我有一个单元格数组 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    

【问题讨论】:

    标签: arrays matlab cell


    【解决方案1】:

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

    rand_ind=randperm(length(Q));
    

    然后使用随机索引生成随机排列的元胞数组

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

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

    【讨论】:

    • 谢谢。这正是我想要的,比我的代码简单得多
    猜你喜欢
    • 1970-01-01
    • 2014-10-22
    • 2017-02-17
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多