给定一个矩阵m = [10i+j for i=1:3, j=1:4],我可以通过切割矩阵迭代它的行:
for i=1:size(m,1)
print(m[i,:])
end
Run Code Online (Sandbox Code Playgroud)
这是唯一的可能吗?这是推荐的方式吗?
那么理解呢?切片是否只能迭代矩阵的行?
[ sum(m[i,:]) for i=1:size(m,1) ]
Run Code Online (Sandbox Code Playgroud) 我有许多由用户输入指定的 Rust 迭代器,我想以锁步方式进行迭代。
这听起来像是一个类似 的工作Iterator::zip,只是我可能需要将两个以上的迭代器压缩在一起。我查看了itertools::multizip和itertools::izip,但是它们都要求在编译时知道要压缩的迭代器的数量。对于我的任务,要压缩在一起的迭代器数量取决于用户输入,因此在编译时无法知道。
我希望有类似Pythonzip函数的东西,它需要一个可迭代的可迭代对象。我想函数签名可能看起来像:
fn manyzip<T>(iterators: Vec<T>) -> ManyZip<T>
where
T: Iterator
Run Code Online (Sandbox Code Playgroud)
如何压缩两个以上的迭代器?仅针对编译时已知迭代器数量的情况。
我可以使用索引等解决我的特定问题,只是感觉应该有更好的方法。