-3
function y = CramersRule(A,b)
[m,n] = size(A);
[o,p] = size(b);
if m~=2 | n~=2 | o~=2 | p~=1
error('the matrices must be 2*2 and 2*1')
A=[a b;c d]
b=[e;f] 
X = det([e b;f a])/det([a b;c d])
Y = det([a e;c f])/det([a b;c d])     
end
end

我刚刚得到结果:CramersRule([1 2;3 4], [0;4]),这是我用来测试它的一个例子。

4

1 回答 1

3

这里有几件奇怪的事情:

  • 首先你有一个包含错误的 if 语句,但是即使有错误你仍然在同一个语句中做事情,也许你想要一个else地方?

  • 其次,您使用A=[a b;c d]while a、c 和 d 甚至没有定义。

  • 第三,您分配给X并且Y从未使用过。

  • 最后,您要求y作为输出参数,而从来没有对此进行分配。也许您没有意识到 matlab 区分大小写?

总而言之,它现在只是一个奇怪的功能。不要忘记检查 mlint(屏幕右侧的警告),因为它可以获取大部分这些内容。

于 2013-11-05T12:25:30.970 回答