for t=1:k
for i=1+2^t:2^(k+1)+m-2^t
for j=1+2^t:2^(k+1)+m-2^t
BM(i,j)=max([BM1(i-2^(t-1),j-2^(t-1)),BM1(i-2^(t-1),j+2^(t-1)),BM1(i+2^(t-1),j-2^(t-1)),BM1(i+2^(t-1),j+2^(t-1))]);%%当t=2时,把BM换成别的表达式的话,问题就解决了;
Bm(i,j)=min([Bm1(i-2^(t-1),j-2^(t-1)),Bm1(i-2^(t-1),j+2^(t-1)),Bm1(i+2^(t-1),j-2^(t-1)),Bm1(i+2^(t-1),j+2^(t-1))]);
end
end
BM1=BM;
Bm1=Bm;
end
这段程序里,我想的得到当t=k是的BM1,应该是跟t=1时的BM1不一样的,可是程序结果显示一样,怎么回事 啊,应该怎么改?这里k是一个常数,t=1时,循环里的BM1也是已知的;
BM(i,j)=max([BM1(i-2^(t-1),j-2^(t-1)),BM1(i-2^(t-1),j+2^(t-1)),BM1(i+2^(t-1),j-2^(t-1)),BM1(i+2^(t-1),j+2^(t-1))]),这里边的BM1也的变化呢呀
追答不好意思,刚才没看清楚你的循环体里面也有BM1,你要求的t=k时的BM1和Bm1,只需要在源程序后面加上两句代码如下:
for t=1:k
for i=1+2^t:2^(k+1)+m-2^t
for j=1+2^t:2^(k+1)+m-2^t
BM(i,j)=max([BM1(i-2^(t-1),j-2^(t-1)),BM1(i-2^(t-1),j+2^(t-1)),BM1(i+2^(t-1),j-2^(t-1)),BM1(i+2^(t-1),j+2^(t-1))]);%%当t=2时,把BM换成别的表达式的话,问题就解决了;
Bm(i,j)=min([Bm1(i-2^(t-1),j-2^(t-1)),Bm1(i-2^(t-1),j+2^(t-1)),Bm1(i+2^(t-1),j-2^(t-1)),Bm1(i+2^(t-1),j+2^(t-1))]);
end
end
BM1=BM;
Bm1=Bm;
end
BM1
Bm1
%直接在command窗口可以看到你要的BM1和Bm1
还是不对啊,再帮忙看看啊
追答你把整个程序补充完整,我再帮你看看。