【发布时间】:2015-10-15 03:18:20
【问题描述】:
我有一个 1-by-4 元胞数组,D。每个单元格元素都包含 2-by-2 双矩阵。我想独立地对每个矩阵进行随机排列,结果我将拥有与D 相同大小的单元数组,但其矩阵的元素将被排列,然后反转,以便再次获得原始的D。
对于单个矩阵的情况,我有代码,它的工作原理如下:
A=rand(3,3)
p=randperm(numel(A));
A(:)=A(p)
[p1,ind]=sort(p);
A(:)=A(ind)
但它不适用于元胞数组。
【问题讨论】:
-
你有没有尝试过?看看使用
cellfun或for-loop、randperm和sort的第二个输出。发布您尝试的代码并准确描述您卡在哪里 -
对于单个任意矩阵,我有代码,它运行良好,但不适用于元胞数组。
-
@Dan %permutation A=rand(3,3) p=randperm(numel(A)); A(:)=A(p) [p1,ind]=排序(p); A(:)=A(ind)
-
@HaybertMarkarian,编辑您的问题以提供更多信息。
-
@HaybertMarkarian 请编辑您的问题并将代码添加到问题中,在 cmets 中不容易阅读。而且,如果它适用于单个矩阵,那为什么不写一个循环呢?
标签: matlab random permutation cell-array