gpt4 book ai didi

Matlab:向量矩阵的行列式

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:25 24 4
gpt4 key购买 nike

我有一个 2x2 矩阵,其中每个元素都是一个 1x5 向量。像这样:

x = 1:5;
A = [ x x.^2; x.^2 x];

现在我想找到行列式,但是发生了这种情况

B = det(A);
Error using det
Matrix must be square.

现在我明白为什么会这样了,MATLAB 将 A 视为一个 2x10 的 double 矩阵。我希望能够将 x 视为一个元素,而不是一个向量。我想要的是 det(A) = x^2 - x^4,然后将 B = det(A) 作为 1x5 向量。

我如何实现这一点?

最佳答案

虽然 Matlab 有符号工具,但它们不是很好。相反,您真的想矢量化您的操作。这可以在循环中完成,或者您可以使用 ARRAYFUN为了工作。听起来 ARRAYFUN 可能更容易解决您的问题。

ARRAYFUN 方法:

x = 1:5;
detFunc = @(x) det([ x x^2 ; x^2 x ]);

xDet = arrayfun(detFunc, x)

产生:

>> xDet = arrayfun(detFunc, x)
xDet =
0 -12 -72 -240 -600

对于更复杂的行列式,例如您的 4x4 情况,我会为实际函数创建一个单独的 M 文件(而不是像我上面那样创建匿名函数),并将其传递给 ARRAYFUN使用函数句柄:

xDet = arrayfun(@mFileFunc, x);

关于Matlab:向量矩阵的行列式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11564341/

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