矩阵乘法在parfor循环(MATLAB)中的单元数组使用

矩阵乘法在parfor循环(MATLAB)中的单元数组使用,matlab,matrix-multiplication,parfor,Matlab,Matrix Multiplication,Parfor,我有一个变量train\u set和一个单元格数组,R=cell(1,K),其中K=1000 所以我想做这样的事情 new_array = cell(1,K); parfor j = 1:K new_array{j} = train_set * R{j}; end 但是问题是变量R被认为是一个广播变量,因此整个数组被加载到每个worker中,而不是每个R{j}。当然,我可以做一些事情,比如创建一个新变量R_new,其中R_new(:,:,j)=R{j},但我担心这会消耗太多内存。我能做

我有一个变量
train\u set
和一个单元格数组,
R=cell(1,K)
,其中
K=1000
所以我想做这样的事情

new_array = cell(1,K);
parfor j = 1:K
    new_array{j} = train_set * R{j};
end

但是问题是变量
R
被认为是一个广播变量,因此整个数组被加载到每个worker中,而不是每个
R{j}
。当然,我可以做一些事情,比如创建一个新变量
R_new
,其中
R_new(:,:,j)=R{j}
,但我担心这会消耗太多内存。我能做些什么来制作
R{j}
sliced变量吗?非常感谢:)

是什么让你认为
R
被视为广播变量?@Suever:编译器告诉我:(在这种情况下,
R
应该被切分。在
parfor
循环的主体中,你有没有对
R
的其他引用?你尝试过
array\u切片(R,j,2)