我遇到了parfor循环的问题:当我想运行一个代码,其结构与下面显示的代码非常相似时,我得到了
订阅分配维度不匹配错误
我用
运行代码dbstop if error
并且我观察到索引i和j被很好地迭代但结果对我的wokspace不可用。你有什么想法吗?
matlabpool 12;
Nx = 51;
Ny = 53;
Nc = 11;
Ns = randn(Ny,Nx);
Nr = randn(Nc, 2^14);
Ne = randn(1, Nc);
parfor j = 1:Ny
tic
for i = 1:Nx
idx = randi([1,Nc],1,19);
if isempty(idx)
continue
end
a = Nr(idx,:);
b = Ne(idx)';
nrr = sum(bsxfun(@(a, b) a.*b, a, b)/(Ns(j,i)),1);
nrrr(j,i,:) = nrr;
end
toc
end
PS:这段代码不是真正的代码,但我可以向您保证,操作类型保持为真实类型(真正的操作类型在非常大的脚本中找到)。