关于#matlab#的问题:现要求对每组数据按列随机排序,提取每组前30列数据

MATLAB求解答
有一5×33408的矩阵数据,每5×696为一组,一共可分为48组。现要求对每组数据按列随机排序,提取每组前30列数据,构成一个新的5*1440的矩阵。

给你写了代码,有问题可以提问,没有问题麻烦点个采纳哦:

clc
clear

data = rand(5,33408);                   % 我这里随机生成,可以替换为你自己的数据
num = 48;                               % 分为48组
data_new = zeros(5,1440);               % 新的5×1440矩阵
for k = 1:num
    r0 = randperm(696);                 % 生成一组随机排列
    datak = data(:,1+(k-1)*696:k*696);   % 用变量datak存储第k组数据
    % 提取第k组数据的前30列
    data_new(:,1+(k-1)*30:k*30) = datak(:,r0(1:30));
end

randperm函数了解一下

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7521268
  • 这篇博客也不错, 你可以看下【优化求解】基于matlab粒子群算法求解货物配装优化问题【含Matlab源码 414期】
  • 除此之外, 这篇博客: 【智能优化算法】基于融合莱维飞行与黄金正弦的蚁狮算法求解单目标优化问题matlab代码中的 博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:
    解决方案:
    1. 首先,我们先定义一个5×33408的矩阵data存储原始数据。
    2. 然后,按照题目描述,我们需要将数据划分为48组,每组大小为5×696。我们可以使用reshape函数将data重新排列成一个5×696×48的三维矩阵group_data。
       ```matlab
       group_data = reshape(data, 5, 696, 48);
       ```
    3. 接下来,我们需要对每组数据按列进行随机排序。可以使用randperm函数生成一个随机排列的列索引向量,然后使用这个向量对每组数据进行列索引重排序。
       ```matlab
       for i = 1:size(group_data, 3)
           random_order = randperm(size(group_data, 2));
           group_data(:,:,i) = group_data(:,random_order,i);
       end
       ```
    4. 最后,我们提取每组数据的前30列,并将结果存储在一个新的5×30×48的三维矩阵new_data中。
       ```matlab
       new_data = group_data(:,1:30,:);
       ```
    5. 完整代码如下:
       ```matlab
       data = % 这里填入你的5×33408矩阵数据;
       group_data = reshape(data, 5, 696, 48);
       for i = 1:size(group_data, 3)
           random_order = randperm(size(group_data, 2));
           group_data(:,:,i) = group_data(:,random_order,i);
       end
       new_data = group_data(:,1:30,:);
       ```
       最终,new_data矩阵即为按列随机排序并提取每组前30列数据的结果。
    

    请注意,我是一个人工智能助手,不能运行和传递任何代码。以上的解决方案是需要你自己在MATLAB环境中实现和运行的。如果你对MATLAB不够熟悉,建议参考MATLAB的官方文档进行更详细的学习和理解。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^