当前位置: 首页 > 面试题库 >

MATLAB以不同方式随机排列列

韦欣德
2023-03-14
问题内容

我有一个非常大的矩阵A,具有N行和M列。我想基本上做以下操作

for k = 1:N
    A(k,:) = A(k,randperm(M));
end

但又快又有效。(M和N都很大,这只是更大的外部循环中的内部循环。)

更多上下文:我正在尝试对相关矩阵实施置换测试(http://en.wikipedia.org/wiki/Resampling_%28statistics%29)。我的数据很大,我很不耐烦。如果有人知道实现这种测试的快速方法,我也将不胜感激!

我是否希望避免循环执行此操作?

抱歉,如果已经有人问过。谢谢!


问题答案:

如果键入open randperm(至少在Matlab R2010b中),您会看到其p输入的输出M仅为

[~, p] = sort(rand(1,M));

因此,为了向量化N行,

[~, P] = sort(rand(N,M), 2);

因此,生成P并使用线性索引到A:

[~, P] = sort(rand(N,M), 2);
A = A(bsxfun(@plus, (1:N).', (P-1)*N));

示例:给定

N = 3;
M = 4;
A = [ 1     2     3     4
      5     6     7     8
      9    10    11    12 ];

一个(随机)结果是

A =
     2     3     1     4
     7     5     8     6
     9    11    12    10


 类似资料:
  • 问题内容: 如何将下面的函数转换为?当前出现错误。 问题答案: 返回,它是描述两个集合索引之间距离的类型。必须为,但不必为,可以与有所不同。因此,不可能创建范围。 一个解决方案是使用和代替and : 另一个优点是,它也可以与数组 切片 正确配合使用 (第一个元素的索引不一定为零)。 请注意,根据新的“ Swift API设计指南”,它 是变异随机播放方法和返回数组的非变异对应方法的“适当”名称:

  • 随机排列指定数组的值,返回一个新的数组。 使用 Fisher-Yates 算法 对数组元素进行重新排序。 const shuffle = ([...arr]) => { let m = arr.length; while (m) { const i = Math.floor(Math.random() * m--); [arr[m], arr[i]] = [arr[i],

  • 问题内容: 我一直在谷歌上寻找答案,但似乎找不到一个万无一失的东西,而且真的负担不起将其弄乱(进入生产站点)。 我所拥有的是具有20多个过滤器的高级搜索,它返回一个包含ID和Distance的数组。我需要做的是将这些结果混洗以每次随机显示。目前我得到的数组是: 我需要做的是每次都对它们进行随机化或排序,但要保持id和距离对,即: 谢谢 :) 问题答案: 在第一个用户后下的文件: 在保留键,值对的同

  • 问题内容: 我有两个并且彼此相关,例如,与“ e1.jpg”相关的“ H1.txt”。如何imgList根据的随机化自动对列表进行随机化?像在excel中一样,如果我们对某些列进行排序,其他列是否会自动跟随? 随机化后输出,例如: 预期的输出: 问题答案: 使用Collections.shuffle()两次,并Random用相同的种子初始化两个对象: 使用具有相同种子的两个对象可确保两个列表将以完

  • 本文向大家介绍jquery实现图片随机排列的方法,包括了jquery实现图片随机排列的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery实现图片随机排列的方法。分享给大家供大家参考。具体如下: 该代码可刷新后实现图片随便排列的jQuery特效 希望本文所述对大家的jQuery程序设计有所帮助。

  • 问题内容: 如何有效地洗净大型(1m至5m记录)表的内容?已知该列具有唯一值,但是您可以假定为此删除了所有约束。我之所以头痛,主要是因为我正在更新选择的同一列。我的目标是使用PL / SQL做到这一点,以便我可以以编程方式采取其他措施,例如记录或更新其他表。 我最近的尝试是创建一个使用的游标,并尝试基于行数进行合并或更新。也许我可以通过创建一个临时表来解决修改自我约束的问题?我相当有信心Oracl