gpt4 book ai didi

function - Maxima:如何区分矩阵的一行和行向量?

转载 作者:行者123 更新时间:2023-12-04 08:31:32 25 4
gpt4 key购买 nike

我想构建一个可以将向量(即 1xm 或 nx1 矩阵)或矩阵的列/行作为输入的函数;然而,我发现了一些看起来有点奇怪的东西:即使 maxima 将向量作为具有 1 行或列的矩阵处理,它对引用它们的元素有不同的要求。
例如:

aMatrix:matrix([1,2,3],[4,5,6]);
matrixVec: aMatrix[1];
aVec:matrix([1,2,3]);
现在,即使 matrixVecaVec a) 从 matrix 中获得函数,并且具有相同的维度(由 length()length(transpose()) 决定,引用它们的元素需要完全不同的符号: matrixVec[1,1];返回错误;
aVec[1,1];正如预期的那样,返回 1。
我想我明白为什么会这样;然而,因为这两个对象都返回 true来自 matrixp (并且具有相同的尺寸),我不知道如何在我的代码中区分它们,以便我可以定义适当的处理。
我可以使用什么样的if语句来区分这两者,以便我可以定义value = x[i]对于矩阵和 value = x[1,i]对于行向量?

最佳答案

在处理其他事情时偶然发现了一个解决方案:事实证明,Maxima 将矩阵的行或列视为列表,尽管它不会将行或列向量视为列表,即给定

aMatrix : matrix([1,2,3],[4,5,6]);
matrixVec : aMatrix[1];
aVec : matrix([1,2,3]);
listp(matrixVec)返回 "true"而 listp(aVec)返回“假”。
listp()可用于区分 1xm 或 nx1 矩阵与矩阵的行或列。

关于function - Maxima:如何区分矩阵的一行和行向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64996270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com