如何在几个部分中分割5D数据矩阵

时间:2017-10-12 10:56:13

标签: matlab matrix split

我有一个5D数据矩阵,包含值(:,:,1,1,1),(:,:,1,1,2),.....(:,:,1,1,10) )每个有57 * 92个元素。我想将这个矩阵分成10个矩阵,其中包含第一个矩阵中的值(:,:,1,1,1)57 * 92,(:,:,1,1,2)57 * 92在另一个矩阵中,依此类推。我正在使用Matlab。

该文件看起来像(已经复制了一小部分):

val(:,:,1,1,1) =

  Columns 1 through 11

      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
  14637      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0  14637  14637      0      0      0      0      0      0      0
  14638  14608  14621  14637  14637      0      0      0      0      0      0
  14653  14617  14608  14608      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0  14581  14581  14581      0
  14606  14606      0      0      0      0      0      0  14581  14581  14581
  14604  14606  14606      0      0      0      0      0      0      0      0
  14603  14606  14605  14596  14596      0      0      0      0      0      0
  14604  14604      0  14595  14596  14596      0      0      0      0      0
      0      0      0      0  14590  14590      0      0      0      0      0
      0      0  14598  14598  14597  14595  14594      0      0      0      0
      0      0      0  14598  14598  14587  14590      0      0      0      0
      0      0      0      0      0  14570  14570  14570      0      0      0
      0      0      0      0      0      0  14570  14570      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
  14627      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
      0      0      0      0      0      0      0      0      0      0      0
  14620      0      0      0      0      0      0      0      0      0      0
  14619  14620      0      0      0      0  14598  14598  14598      0      0
  14612  14611  14612      0      0      0      0  14598  14598  14598      0
  14613  14606  14607  14609      0      0      0      0      0      0      0
      0      0  14609  14609  14608  14599      0      0      0      0      0
  14581  14598  14601      0      0  14599  14599      0      0      0      0
  14581  14588  14601  14601      0  14581  14584  14587      0      0      0
  14586  14581  14597  14601  14591  14589  14575  14575      0      0      0
  14598      0      0      0  14590  14589  14589      0      0      0      0
  14597  14595  14580      0      0  14594  14594  14594      0      0      0
  14587  14581  14582  14580  14581  14582  14594  14594      0      0      0
  14615  14609  14593  14587  14583  14586  14592  14594      0      0      0
  14630  14633  14629  14602  14610  14628  14605  14602      0      0      0
  14645  14649  14650  14645  14640  14634  14630  14616  14610  14606  14593
  14659  14663  14667  14677  14642  14645  14642  14634  14607  14606      0
  14662  14662      0  14702  14702  14687  14649  14641  14621  14621      0
      0      0      0      0  14689  14691  14667  14650  14627  14621  14621
  14646  14633  14640  14685  14681  14677  14679      0      0      0  14646
  14647  14635  14630  14660  14685  14667  14656  14634  14624  14624      0
  14602  14619  14619  14620  14643  14644  14640  14639  14623  14623      0
  14578  14567  14597  14601  14614  14643  14639  14636  14621  14619  14623
  14574  14568  14571  14583  14590      0      0      0  14592  14592  14593
  14575  14566  14564  14572  14576      0      0      0      0  14592  14592
  14576  14571  14560  14558      0      0      0      0      0      0      0
      0      0  14561  14560      0      0      0      0      0      0      0

  Columns 12 through 22

1 个答案:

答案 0 :(得分:-1)

你可以这样做,它将创建N个矩阵,命名方案为M_number,其中number从1到N:

% Create dummy 5D matrix
val = zeros(57,92,1,1,10);

% Create N matrices
N = 10;
for i = 1:N
    eval(sprintf('M_%d = val(:,:,1,1,%d);', i, i));
end