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])
,这是我用来测试它的一个例子。
答案 0 :(得分:3)
这里有几件奇怪的事情:
首先你有一个包含错误的if语句,但即使你在同一个语句中仍然有错误,也许你想在某个地方else
?
其次,您使用A=[a b;c d]
,而a,c和d甚至没有定义。
第三,您指定了从未使用过的X
和Y
。
最后你要求y
作为输出参数,而从来没有赋值给它。也许你没有意识到matlab是否具有案例敏感性?
总而言之,它现在只是一个奇怪的功能。不要忘记检查mlint(屏幕右侧的警告),因为它可以拾取大部分这些东西。