Matrix 如何在Rust中对矩阵进行索引选择
我有一个矩阵,看起来像这样:Matrix 如何在Rust中对矩阵进行索引选择,matrix,rust,Matrix,Rust,我有一个矩阵,看起来像这样: pub struct Matrix<T> { pub grid: Vec<T>, } /// constructor impl<T> Matrix<T> { pub fn new(data: Vec<T>) -> Matrix<T> { Matrix { grid: data } } } 我看过其他的图书馆,它们做的很好,但我正在做一些这些图书馆
pub struct Matrix<T> {
pub grid: Vec<T>,
}
/// constructor
impl<T> Matrix<T> {
pub fn new(data: Vec<T>) -> Matrix<T> {
Matrix { grid: data }
}
}
我看过其他的图书馆,它们做的很好,但我正在做一些这些图书馆没有完成的事情
提取的参数是列、行
,我希望采用元组或向量,但如果不可能,我会选择向量。如上所述,该语法源自python的pandas库,我在该库中发布了一个指向备忘单的链接,该链接引用了iloc
函数。所以vec![1,2]
将只返回索引从0开始的第1列和第2列。而对于元组(-1',:',)
,我希望返回除第一行之外的所有行。因此,如果它是(,':',-1)
我将得到除最后一行之外的所有行<代码>(1’:’,6)将返回第1-6行,包括中间的所有行<代码>(,“:”,)将返回所有行。哪个(0,,:',0)
和vec![0]
两者仅给出第一行/列,向量类型不能指定范围除外
至于我想返回的数据结构是一个矩阵,就像其他矩阵库中使用的矩阵一样。具有行、列和数据的矩阵类型。我正在将csv文件读入一个通用矩阵T,我可能会将它转换为一个字符串,因为我怀疑我是否会改变它。我需要能够将字符串矩阵中的数据转换为f64,然后有一个新的矩阵类型来处理矩阵数学。我仍然需要保留字符串
矩阵作为参考,以创建我自己的逻辑,以便在字段中传达积极或消极的反馈(真/假),这些字段包含匹配的国家名称或列中的是/否
我将如何迭代这个包含Vec
的矩阵以从中检索特定矩阵?我有标题,我想要所有的数据,所以我需要跳过Matrix.grid[0]
的索引,但没有其他索引
我是否需要编写一个impl迭代器
,如果需要,将如何完成?我已经看到了不同的格式,但我需要一生来完成这一点吗?我是否需要在结构中添加impl
以获得复制功能,在所有值中添加mut ref
,在所有值中添加ref
我对生锈还不太熟悉,非常渴望了解更多。我读了整本铁锈书,在网上上了一门课,但我仍然发现自己在处理矩阵时迷失了方向 您的
extract
示例代码甚至没有平衡的分隔符,更不用说解释参数的含义了。我们怎么知道(-1,:”,
应该传达什么?您希望返回什么样的数据结构?您将对该结果执行什么操作?编写一个只会让人恐慌的extract
版本将是微不足道的,但我怀疑这是您的目标。总的来说,您的问题似乎太不明确,无法在这里尝试回答堆栈溢出问题。我给您的最好建议是查看堆栈溢出的来源。您可能会更幸运地在资源上提出这样一个开放式问题,例如,the或.Re:“delimiters”-我指的是缺少的右括号,您已经修复了它。也不需要添加编辑文本;只需编辑问题,使其更好。如果你回应我的评论,我会删除它们,所以引用它们是没有意义的;-)
// m equals a matrix of type Vec<String>
// the matrix is 11 rows 4 columns. I dont want the first row
// because of headers or the first or last column.
// args {cols: Vec<?>||tuple(i64,str,i64), rows: Vec<?>||tuple(i64,str,i64}
let data = m.extract(vec![1,2], (-1,':',))