Matlab:拉普拉斯扩展

时间:2016-07-18 15:42:05

标签: matlab determinants

当我在Matlab中运行拉普拉斯扩展以获得行列式时,我确实得到了未定义函数或变量' A'""如果有人能帮助我纠正它并使其可行,我将很高兴。

 function value = Laplace
   A=input('matrix A =');
   [rows, columns] = size(A);
if rows == 2
   for i = 1:rows
    value = A(1,1)*A(2,2) - A(1,2)*A(2,1);
   end
 else
   if rows==3:size(A);
   for i = 1:rows
   columnIndices = [1:i-1 i+1:rows];
 value = value + (-1)^(i+1)*A(1,i)*...*Laplace(A(2:rows, columnIndices));
  end
 end

谢谢

1 个答案:

答案 0 :(得分:0)

以下是一种使代码可行的方法:

function value = Laplace(A)
if nargin < 1
    n = input('Matrix dimention = ');
    A = rand(n);
end
[rows, ~] = size(A);
value = 0;
if rows == 2
    for i = 1:rows
        value = A(1,1)*A(2,2) - A(1,2)*A(2,1);
    end
else
    if rows >= 3
        for i = 1:rows
            columnIndices = [1:i-1 i+1:rows];
            value = value + (-1)^(i+1)*A(1,i)*Laplace(A(2:rows, columnIndices));
        end
    end
end
end

这并不意味着它应该做到它应该做的事情,我只修复了阻止它工作的所有错误,猜测这是什么意思。