急问~请问怎么不用循环移动矩阵的值

楼主: vu04y94 (今)   2017-08-10 22:02:34
A是一个二维矩阵
A(i,j)都要移动到 B(i+30,j+30) 也就是往右下移动
用双层循环跑就
B(i+30,j+30) = A[i,j] 先不用管超出边界的问题
我知道如果A是一维矩阵 每个元素要往右移动30格
在python可以写B[np.arrange(A.size)+30] = A[np.arrange(A.size)]
但变成二维有两个变量 不知道要怎么办
A[:] <- 这种写法没有ij变量 就不能拿来+30
不用循环应该要怎么写 还请前辈开示m(_ _)m
作者: CaptainH (Cannon)   2017-08-10 22:40:00
B[30:,30:]=A基本的slicing还是要练一下
楼主: vu04y94 (今)   2017-08-10 22:55:00
可以说明像这样的slicing内部是怎么达成的吗?我应该说清楚一点 实际上是每个点都要根据指定的向量移动 不是都往同个方向
作者: EGsux (天龙人)   2017-08-11 02:40:00
http://i.imgur.com/ZDsUUVG.jpghttp://i.imgur.com/SCmamKA.jpg你就跟着楼上的 code 试一下。。C=5

Links booklink

Contact Us: admin [ a t ] ucptt.com