我有一个结构(数据),由322个单元格组成,296个(特征)* 2000个(时间点)。我想要一个每个时间点的矩阵,包括试验^特征^时间点(322 * 296 * 2000)。我目前正在做什么,什么也工作正常使用for循环:
for k=1:size(data.trial{1,1},2)
for i= 1:length(data.trialinfo)
between=data.trial{1,i}';
data(i,:,k)=between(k,:);
end
end
有人能想到更快的方法吗?因为矩阵增加需要很长时间。
谢谢!
卡洛斯
答案 0 :(得分:0)
尝试:
data2 = permute(reshape([data.trial{:}],296,2000,322),[3,1,2]);
reshape
的问题在于它是在列中进行思考,因此您需要permute
个后缀(即3D转置),因为这是您在自己设置输出变量的方式环。我使用连接而不是cell2mat
来提高速度。
我认为这可以作为样本数据:
for ii= 1:322
data.trial{1,ii} = rand(296,2000);
end