我有仿真我的实际代码的示例代码。我在parfor循环之外有单元阵列。我必须对字符串进行计算,数字输出将存储在数组中,我可以在每个parfor循环之后将其写入csv文件。所以我制作了虚拟代码。但我无法执行它。错误消息是:“第6行的订阅不匹配”。在matlab中执行parforlop
ftemp=fopen('temp.csv','w');
march=cell(1,20);tc=0;
march={'ab' 'cd' 'ef' 'gh' 'ij' 'kl' 'mn' 'op' 'qr' 'st' 'uv' 'AB' 'CD' 'EF' 'GH' 'IJ' 'KL' 'MN' 'OP' 'QR'};
for i=1:10
matlabpool open 4;
parfor j=1:1:20
a(j,1)=randi(200,1,1);
b(j,2)=j+tc;
c(j,3)=march{1,j};
d(j,4)=(randi(200,1,1)/200);
end
fprintf(ftemp,'%d\t%d\t%s\t%f',a,b,c,d);
matlabpool close
clear a b c d;
tc=tc+20;
end
fclose(ftemp);
quit
什么是您的Matlab版本? – Mehrez
我不明白为什么它不应该工作。以下是另外两个注意事项:不要使用'i'作为变量,它已经在与复数相关的matlab中具有含义!此外,多次打开和关闭一个matlabpool是没有意义的。在脚本的开头和结尾处做一次。 – Cat
@MHRZ,@ potAito感谢您的建议,但仍然可以让它工作。 MATLAB版本是2012A – samar