MATLAB将表格中的某些行数据(包括文字行)放到某些行的后面

我有一张很多数据的表格(这些数据的行数是有规律的),现在需要将表格进行处理
1:比如将26到51行的文字和数据放到1到25行后面,后面依次类推如78到103行放到52到77行后面

该回答引用ChatGPT

您可以使用MATLAB的循环语句和索引操作来实现这个任务。下面是一种可能的实现方法:

  1. 假设您的数据表格存储在一个名为 data 的矩阵中,每行包含一个样本。您可以使用一个循环来遍历每个需要移动的数据块,然后使用索引操作将它们移动到正确的位置。具体而言,您可以按照以下步骤进行操作:
  1. 设置一个变量 block_size,表示每个需要移动的数据块的大小(即26到51行、78到103行等的行数差)。
    使用一个循环遍历每个需要移动的数据块。对于第i个数据块,计算其起始行号 start_row 和结束行号 end_row,例如对于第1个数据块,有 start_row = 26,end_row = 51。
    使用索引操作将该数据块的行复制到正确的位置。具体而言,您可以使用以下语句将第i个数据块移动到正确的位置:
data(start_row:end_row,:) = data(start_row-block_size:end_row-block_size,:);

  1. 这将原始数据矩阵中从 start_row 到 end_row 行的数据复制到从 start_row-block_size 到 end_row-block_size 行的位置,覆盖之前的数据。
  1. 重复步骤2和3,直到处理完所有的数据块。

完整的代码如下所示:


% 设置每个数据块的大小
block_size = 25;

% 遍历每个数据块
for i = 1:floor(size(data,1)/block_size)-1
    % 计算该数据块的起始行号和结束行号
    start_row = (i-1)*block_size + 26;
    end_row = i*block_size + 1;

    % 将该数据块移动到正确的位置
    data(start_row:end_row,:) = data(start_row-block_size:end_row-block_size,:);
end

  • 参考GPT的内容和自己的思路:

  • 假设你的表格数据存储在名为table_data的表格变量中,可以使用以下代码将26到51行的数据放到1到25行后面:

% 获取2651行的数据
rows_to_move = table_data(26:51,:);

% 将数据添加到125行的后面
table_data = [table_data(1:25,:); rows_to_move; table_data(52:end,:)];


  • 同样的,将78到103行的数据放到52到77行后面,可以使用以下代码:
% 获取78103行的数据
rows_to_move = table_data(78:103,:);

% 将数据添加到5277行的后面
table_data = [table_data(1:51,:); rows_to_move; table_data(104:end,:)];