首页 > 解决方案 > 寻找行列式的递归函数

问题描述

我正在尝试构建一个递归函数来使用拉普拉斯公式计算行列式。

function y=detm(M)
    n=length(M);

    if n==2
        y=M(1,1).*M(2,2)-(M(1,2).*M(2,1));
    else
       for i=1:n
           y=sum(((-1)^(1+n).*M(1,n).*detm(M([1:n-1,n+1:end],[1:n- 1,n+1:end]))));
    end
end

问题是我找不到一种方法来省略 for 循环的需要,因为我需要在从 1 到 n 的列上运行。有没有办法在同一个函数中做到这一点,或者我需要创建另一个递归函数?

标签: algorithmmatlab

解决方案


推荐阅读