我刚到拉斯特。
假设矩阵a
具有(n1, n2)
的形状,b
具有(m1, m2)
,c
具有(k1, k2)
,我想检查a
和b
是否可以相乘(作为矩阵),a * b
的形状是否等于c
,换句话说,(n2 == m1) && (n1 == k1) && (m2 == k2)
。
use ndarray::Array2;
// a : Array2<i64>
// b : Array2<i64>
// c : Array2<i64>
.shape
方法将数组的形状作为切片返回。什么是简洁的方法?
从.shape()
返回的数组是否保证长度为2,或者我是否应该检查它?如果保证,是否有办法跳过None
检查?
let n1 = a.shape().get(0); // this is Optional<i64>
1条答案
按热度按时间c9x0cxw01#
对于Array2,有.ncols()和.nrows()方法,如果你只使用二维数组,那么这可能是最好的选择,它们返回usize,所以不需要
None
检查。