lpp8515 发表于 2009-10-29 20:16

请教如何编程问题,谢谢!!

遇到一个matlab的编程问题,很困惑,不知如何下手,请教高手指点一二:
A为16*16的矩阵,数值介于1:100之间,B=zeros(10,10);当A取其中一个值,比如取A(1,1)=1时,B中有一个数值为1,即B(5,5)=1,当取A(1,2)=11时,B中相应的有11个数赋为1,而且这11个1位于B的中央,以此类推,并将每次得到的B值保存下来,请教高手这个对B的赋值该如何编程,如何对全0的B从中间赋值?
附图:   

[ 本帖最后由 ChaChing 于 2010-4-15 15:59 编辑 ]

ChaChing 发表于 2009-10-29 21:23

"位于中央"的的定义好像不够明确!? 随便吗?

lpp8515 发表于 2009-10-29 22:10

是的,这个“位于中央”的填入方法没有规律性可言,这就是在编程上的难点,如果是随机填入,只要大体上在中央就行,这个该怎么实现?
或者我试想当A(1,1)=1时,B(5,5)=1,当A(1,2)=2时,B(5,5)和B(5,6)=1,当A(1,3)=3时,B(5,5)、B(5,6)和B(6,6)=1.........这样类推下去,也就是说沿着B(5,5)这个像素(顺时针或逆时针)旋转着填充,不知道该种方法是否可行?
希望给予编程上的指导,哪种方法都行,只要是从中间开始填充元素。不胜感激,在此多谢!!

ChaChing 发表于 2009-10-29 23:55

没有规律性就按楼主想法, 沿着B(5,5)这个像素顺时针旋转赋值!
楼主先自己练练看
页: [1]
查看完整版本: 请教如何编程问题,谢谢!!