Matlab 如何将5D数据矩阵拆分为若干部分
我有一个5D数据矩阵,包含值(:,:,1,1,1),(:,:,1,1,2),…(:,:,:,1,1,10),每个值有57*92个元素。我想把这个矩阵分成10个矩阵,第一个矩阵中包含值(:,:,1,1,1)57*92,另一个矩阵中包含值(:,:,1,1,2)57*92,依此类推。我正在使用Matlab 该文件看起来像(复制了一小部分):Matlab 如何将5D数据矩阵拆分为若干部分,matlab,matrix,split,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 该文件看起来像(复制了一小部分): 您可以这样做,它将创建N个矩阵,命名方案为M_编号,其中编号从1到N: % Create dummy 5D matrix val = zeros(57,92,1,
您可以这样做,它将创建N个矩阵,命名方案为M_编号,其中编号从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
为什么不直接使用索引/切片来获取这些切片:
val(:,:,:,:,1)
,val(:,:,:,:,2)
。val(:,:,,:,,:,10)
?根据您的另一个问题,您是否拆分以保存?如果是这样,为什么不另存一种格式?@Guto,是的,我正在拆分以保存不同的文件。我试图以另一个问题中讨论的另一种格式保存。@Divakar如何使用循环对它们进行索引,因为我想保存每个val(:,:,:,:,:,,:,1),val(:,,:,,,,:,2)…我正在使用这个循环,但在I=1:10 M_I=lst10(:,,:,,,:,,,,,:,I)的输出中只有一个变量;end@VaishaliJain使用迭代器将索引输入到输出中:M_i(i)=lst10(:,:,:,:,:,i)代码>?非常感谢,这段代码完美地达到了我的目的。现在,如果我想对所有变量执行一个函数,我的工作区中有10个变量,分别是M_1,M_2。我如何定义这些变量?请不要教坏的编程实践。这个@sardarUsama,你能详细说明一下吗?有人问了我一个问题,我回答说:,
% 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