Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matrix 如何在Rust中对矩阵进行索引选择_Matrix_Rust - Fatal编程技术网

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,':',))