MATLAB如何在parfor循环中输出矩阵?

时间:2014-10-02 08:47:29

标签: algorithm matlab matrix parallel-processing

我通常用for替换MATLAB代码中的parfor,但所有2维矩阵都不起作用。

代码

parfor k=1 : n
sonic = data1((1+(k-1)*2400):(2400*k));
signal1 = (sonic(1:2400))./100;
Ar = abs(fftshift(fft(signal1,2400)));
[maxb,ind] = max(b);
Tp(k) = 2*pi/x(ind);
E = @(x)(x^2+1);
for i=1:length(x2)
    Ex(i,k) = E(x2(i));
    Exm0(i,k) = Ex(i,k)-m0(k);
    signal2(i) = Exm0(i,k);
end
epsilong(:,k) = Ar; 
end

工作区中只显示Tp(k)等变量;像Ex(i,k)这样的二维矩阵不起作用。

1 个答案:

答案 0 :(得分:0)

描述嵌套在PARFOR循环中的FOR循环的限制here - 我认为这种情况下的问题是你的循环边界1:length(x2)。如该页面所述,您应该可以解决这个问题:

len_x2 = length(x2);
parfor k = 1:n
    ...
    for i = 1:len_x2
        ...
    end
end