MATLAB无法改变元胞中数组的值,如何解决?

for p=1:1816
sum2=0;
[c,d]=size(b{p,1});
for j=1:c
sum2=sum2+b{p,1}(j,1);
end
ave2=sum2/c;
for q=1:c
if(b{p,1}(q,1)<=ave2*(1+ave1))&(b{p,1}(q,1)>=ave2*(1-ave1))
b{p,1}(q,1)=ave2;
end
end

b是二维cell吗?
如果是的话,b{p,1}(q,1)应该是b{p,q}

这里应该差一个end,如果你的元胞组中的(p,1)是一个数组或者矩阵,那基本上没问题,但是若不是可能就会出现问题

for p=1:1816
sum2=0;
[c,d]=size(b{p,1});
for j=1:c
sum2=sum2+b{p,1}(j,1);
end
ave2=sum2/c;
for q=1:c
if(b{p,1}(q,1)<=ave2*(1+ave1))&(b{p,1}(q,1)>=ave2*(1-ave1))
b{p,1}(q,1)=ave2;
end
end
end