在kernel 里面如何循环矩阵的每一行,为啥我用for 会报错

import numpy as np

import taichi as ti
ti.init(arch = ti.cpu)

data = np.array([[1, 1, 1, 0, 0, 0],
                [0, 1, 1, 1, 0, 0],
                [0, 1, 1, 1, 0, 0],
                [1, 1, 1, 0, 0, 0],
                [1, 1, 1, 1, 1, 0]])
@ti.kernel
def a(data:ti.types.ndarray()):
    for i in ti.Matrix(data) :
        print(i)

a(data)

这一段代码,不加kernel 装饰器就可以,运行不报错,但是加了之后就报错呢

File “/tmp/ipykernel_175/508962954.py”, line 13, in a:
for i in ti.Matrix(data) :
An Matrix/Vector can only be initialized with an array-like object

matrix 你可以直接写

for i in range(n):
    for j in range(n):

或者单独取一行用

A[3, :]

直接 struct for 是不可以的。