我想构建一个可以将向量(即 1xm 或 nx1 矩阵)或矩阵的列/行作为输入的函数;然而,我想出了一些看起来有点奇怪的东西:即使 maxima 将向量作为具有 1 行或 col 的矩阵处理,它对引用它们的元素有不同的要求。
例如:
aMatrix:matrix([1,2,3],[4,5,6]);
matrixVec: aMatrix[1];
aVec:matrix([1,2,3]);
现在,即使matrixVec
andaVec
是 a) 从matrix
函数获得的,并且具有相同的维度(由length()
and确定length(transpose())
,引用它们的元素需要完全不同的符号:
matrixVec[1,1];
返回错误;而aVec[1,1];
返回 1,正如预期的那样。
我想我明白为什么会这样;但是,因为这两个对象都true
从matrixp
(并且具有相同的尺寸)返回,所以我不知道如何在我的代码中区分它们,以便我可以定义正确的处理方式。
我可以使用什么样的 if 语句来区分这两者,以便我可以value = x[i]
为矩阵和value = x[1,i]
行向量定义?