Rust 如何从阵列输入数据2<;f64>;到树上?
我有一个Ndaray阵列中的点云2,它是3x500。 我想使用KdTree板条箱从这些点制作kd树。Rust 如何从阵列输入数据2<;f64>;到树上?,rust,kdtree,Rust,Kdtree,我有一个Ndaray阵列中的点云2,它是3x500。 我想使用KdTree板条箱从这些点制作kd树。 KdTree文档中有以下示例: 让尺寸=2; 让mut-kdtree=kdtree::new(维度); 但当我尝试时,我得到: 无法推断类型参数'A的类型` 考虑给予“树”显式的类型kdTrut::kdTrut::kdTre',其中指定了类型参数“a” 我不知道A、t和U应该是什么 要添加我尝试使用的点,请执行以下操作: pub-fn-add(&mut-self,点:U,数据:T)->结果
让尺寸=2;
让mut-kdtree=kdtree::new(维度);
但当我尝试时,我得到:
无法推断类型参数'A的类型`
考虑给予“树”显式的类型kdTrut::kdTrut::kdTre',其中指定了类型参数“a”
我不知道A、t和U应该是什么
pub-fn-add(&mut-self,点:U,数据:T)->结果
但我不知道数据应该是什么。这是因为您只想运行以下命令:
让尺寸=2;
让mut kdtree=kdtree::new(维度);//kdtree类型是kdtree
而不是:
设a:([f64;2],usize)=([0f64,0f64],0);
设b:([f64;2],usize)=([1f64,1f64],1);
设c:([f64;2],usize)=([2f64,2f64],2);
设d:([f64;2],usize)=([3f64,3f64],3);
设尺寸=2;
让mut kdtree=kdtree::new(维度);//kdTree类型是kdTree
kdtree.add(&a.0,a.1).unwrap();
kdtree.add(&b.0,b.1).unwrap();
kdtree.add(&c.0,c.1).unwrap();
添加(&d.0,d.1).unwrap();
您可以将顶部代码更改为:
让尺寸=2;
//我们自己提供型号
让mut-kdtree:kdtree=kdtree::new(维度);
现在,这种情况发生在Rust如何在编译时推断
编译器通常可以根据值以及如何使用它来推断我们想要使用的类型
在第二段代码中,Rust能够通过查看我们的add
方法来找出我们想要的kdtree
类型,但是在第一种情况下没有发生这种情况,因为没有提供额外的信息
第三段代码有效,因为我们显式地键入了kdtree
的类型
但我不知道数据应该是什么
这里的
数据:T
是一个,可以是任何东西。这是因为您只想运行以下命令:
让尺寸=2;
让mut kdtree=kdtree::new(维度);//kdtree类型是kdtree
而不是:
设a:([f64;2],usize)=([0f64,0f64],0);
设b:([f64;2],usize)=([1f64,1f64],1);
设c:([f64;2],usize)=([2f64,2f64],2);
设d:([f64;2],usize)=([3f64,3f64],3);
设尺寸=2;
让mut kdtree=kdtree::new(维度);//kdTree类型是kdTree
kdtree.add(&a.0,a.1).unwrap();
kdtree.add(&b.0,b.1).unwrap();
kdtree.add(&c.0,c.1).unwrap();
添加(&d.0,d.1).unwrap();
您可以将顶部代码更改为:
让尺寸=2;
//我们自己提供型号
让mut-kdtree:kdtree=kdtree::new(维度);
现在,这种情况发生在Rust如何在编译时推断
编译器通常可以根据值以及如何使用它来推断我们想要使用的类型
在第二段代码中,Rust能够通过查看我们的add
方法来找出我们想要的kdtree
类型,但是在第一种情况下没有发生这种情况,因为没有提供额外的信息
第三段代码有效,因为我们显式地键入了kdtree
的类型
但我不知道数据应该是什么
这里的data:T
是一个变量,可以是任何东西