你好 这个是不是在 ti.kernel
外面尝试给 Matrix 赋值?请提供一下 Matrix 的声明部分和更多的上下文这样方便分析问题所在~
1 个赞
在查看最新版的手册后,尝试如下代码定义一个矩阵,但似乎是不能够赋值的(也就是原帖子提示的错误),那这种定义方式是什么作用呢?
A = ti.types.matrix(n,n,dtype=ti.f32)
在查看最新版的手册后,尝试使用如下代码定义矩阵时,该矩阵是可以赋值并正常使用,但是以field的形式定义矩阵完成这项工作(指雅可比迭代法)是不是最简洁合适的?
A = ti.Matrix.field(n,n,dtype=ti.f32,shape=())
以上是我的三个问题,感谢您的解答!
这种定义的意义是定义一个 matrix
类型,使你可以建立这种类型的对象。比如说,当你定义了 A = ti.types.matrix(2, 2, dtype=ti.f32)
以后,你可以用 matrixA = A(1, 1, 1, 1)
来初始化一个 2 x 2 的元素都是 1 的 matrix
. 详情请见文档:Type System | Taichi Docs
1 个赞
这样定义的意思是定义一个 ti.field
其中元素为一个 Matrix,如果你仅仅想表达一个矩阵,而不是一个元素为矩阵的 field,可以考虑直接用 ti.filed(dtype=ti.f32, shape(n, n))
, 是更加直观的方法
1 个赞