这个Matlab函数有什么问题

时间:2013-11-05 12:20:57

标签: matlab

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]),这是我用来测试它的一个例子。

1 个答案:

答案 0 :(得分:3)

这里有几件奇怪的事情:

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

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

  • 第三,您指定了从未使用过的XY

  • 最后你要求y作为输出参数,而从来没有赋值给它。也许你没有意识到matlab是否具有案例敏感性?

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