-2

当我在 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

谢谢

4

1 回答 1

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

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

于 2016-07-18T17:53:54.523 回答