matlab - 在 matlab 中有效地扰乱 nx1 矩阵?

标签 matlab

我需要在 matlab 中随机打乱 nx1 矩阵的值。我不确定如何有效地执行此操作,我需要多次执行 n > 40,000。

例子

之前的矩阵:

1 2 2 2 3 4 5 5 4 3 2 1

炒:

3 5 2 1 2 2 3 4 1 4 5 2

谢谢

最佳答案

如果您的数据存储在矩阵 data 中,那么您可以使用 randperm 生成“加扰”数据像这样:

scrambled = data(randperm(numel(data)));

这是没有替换的采样,所以data中的每个值都会在scrambled中出现一次。

对于 with 替换采样(data 中的值可能多次出现在 scrambled 中,有些可能根本不出现),您可以使用randi 像这样:

scrambled = data(randi(numel(data),1,numel(data)));

关于matlab - 在 matlab 中有效地扰乱 nx1 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14223797/

相关文章:

matlab - MATLAB 中的通用分块对角矩阵

python - NumPy:矩阵点积与 MATLAB 不兼容

matlab - 从 MATLAB 创建 DLL

matlab - matlab中两个向量的协方差

java - 如何将所有值保存在内存中,并使用命令查看它们,就像在Matlab中调试一样

matlab - 检查 Matlab 中没有输入参数为空

performance - 使用稀疏矩阵时的最佳实践

matlab - 如何在 MATLAB 中获取 GoPro 视频每一帧的时间戳?

Matlab:如何在我的例程中接收函数(如 exp)作为参数?

matlab - 将函数转换为 Simulink 模块