a=Rod_Temp_Gradient;
b=a;
count=0;
while (max(b)-min(b))>0.5
for k=2:(length(a)-1)
b(1)=(a(1)+a(2))/2;
b(length(a))=(a(length(a))+a(length(a)-1))/2;
b(k)=(a(k+1)+a(k-1))/2;
end
a=b;
k=1:length(a);
plot(k,b)
ylim([min(Rod_Temp_Gradient) max(Rod_Temp_Gradient)])
pause(0.000001)
count=count+1;
end
fprintf('count=%f\n',count)
这个运行出来的是正确的
a=Rod_Temp_Gradient;
b=a;
count=0;
while (max(b)-min(b))>0.5
for k=2:(length(a)-1)
b(1)=(a(1)+a(2))/2;
b(length(a))=(a(length(a))+a(length(a)-1))/2;
b(k)=(a(k+1)+a(k-1))/2;
a=b;
k=1:length(a);
plot(k,b)
ylim([min(Rod_Temp_Gradient) max(Rod_Temp_Gradient)])
pause(0.000001)
count=count+1;
end
end
fprintf('count=%f\n',count)
如果我把刚才a=b上面的end移到下面去 结果就变了 真的弄不懂为什么 感觉二者差不多的呀!
我看过了 只要我把正确指令里的end 移动到a=b的下面那一行, 算出的count 就完全不对 这是为什么
追答for k=2:(length(a)-1)
b(1)=(a(1)+a(2))/2;
b(length(a))=(a(length(a))+a(length(a)-1))/2;
b(k)=(a(k+1)+a(k-1))/2;
end
a=b;
你自己的这个循环,如果把end放下面,那么整个ab 的赋值都乱了。。。肯定不一样了啊