【问题标题】:Matlab, Change order in a cell array randomlyMatlab,随机更改单元格数组中的顺序
【发布时间】:2014-06-13 22:01:18
【问题描述】:

是否可以使用函数随机更改单元格数组的顺序,还是应该换一种方式?

【问题讨论】:

    标签: arrays matlab random cell


    【解决方案1】:

    使用randperm:

    >> myCell = {'a', 23, [3 4 5], 'bbb'}
    myCell = 
        'a'    [23]    [1x3 double]    'bbb'
    
    >> myCell(:) = myCell(randperm(numel(myCell)))
    myCell = 
        'bbb'    'a'    [1x3 double]    [23]
    

    这也适用于 n 维元胞数组:

    >> myCell = {1, 2; 'a', 'b'}
    myCell = 
        [1]    [2]
        'a'    'b'
    
    >> myCell(:) = myCell(randperm(numel(myCell)))
    myCell = 
        [1]    'a'
        'b'    [2]
    

    【讨论】:

    • 猜猜我们的解决方案大致相同,我将randperm 切换到另一边以引入至少一点变化。
    • 谢谢你,丹尼斯,这正是我正在寻找的两个答案
    • @DennisJaheruddin 是的,没有太多变化可以使用 :-) +1 也适合你
    【解决方案2】:

    或许就这么简单:

    x = {10,11,12}
    x(randperm(3))=x
    

    【讨论】:

    • 是的,你是对的,这显然很简单,谢谢你的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 2015-08-10
    相关资源
    最近更新 更多