我希望并行编写以下代码:
min=0;
LB=[min1 min2]
UB=[max1 max2]
numvalues2=OpParam(2);
for i =LB(1):step1:UB(1),
for j =LB(2):step2:UB(2)
acc=ComputeCbetaPerm( [i j],featureMatrix,labelMatrix);
if(acc < max)
acc=min;
values=[i j];
end
end
end为了避免使用临时变量max,我更改了下面的内容,但是它仍然给出了一个分类错误,但我没有得到。
LB=[min1 min2]
UB=[max1 max2]
Result=cell(numvalues1,numvalues2,1);
outervalues=LB(1):step1:UB(1);
innervalues=LB(2):step2:UB(2);
for (i =1:numel(outervalues)),
parfor (j =1:numel(innervalues)),
acc=ComputeCbetaPerm( [outervalues(i) innervalues(j)],featureMatrix,labelMatrix);
Result(i,:,1)={outervalues(i),innervalues(j),acc};
end
end也被问到在http://in.mathworks.com/matlabcentral/answers/195799-classification-error-for-parfor。
编辑:
子脚本赋值维度不匹配。 由: Subscripted赋值维度不匹配引起。 J 安= 0.0000 +1.00i
发布于 2015-04-02 14:26:04
错误与parfor无关。您可以将parfor替换为for,并将收到相同的错误。
LB=[min1 min2]
UB=[max1 max2]
Result=cell(numvalues1,numvalues2,3);
outervalues=LB(1):step1:UB(1);
innervalues=LB(2):step2:UB(2);
for i =1:numel(outervalues)
parfor j =1:numel(innervalues)
acc=ComputeCbetaPerm( [outervalues(i) innervalues(j)],featureMatrix,labelMatrix);
Result(i,j,:)={outervalues(i),innervalues(j),acc};
end
end您正在尝试将三个值放入单元格中,但您只为其中一个分配了空间。
https://stackoverflow.com/questions/29414645
复制相似问题