这个Matlab函数有什么问题

这个Matlab函数有什么问题,matlab,Matlab,我刚刚得到结果:CramersRule([12;34],[0;4]),这是我用来测试它的一个例子。这里有一些奇怪的东西: 首先,您有一个包含错误的if语句,但是即使有错误,您仍然在同一个语句中执行操作,也许您希望在某个地方使用else 其次,您使用A=[ab;cd],而A、c和d甚至没有定义 第三,您分配给从未使用过的X和Y 最后,您将询问y作为输出参数,但从未对此赋值。也许你没有意识到matlab是区分大小写的 总而言之,它现在只是一个奇怪的函数。不要忘了检查mlint(屏幕右侧的警告),

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

这里有一些奇怪的东西:

  • 首先,您有一个包含错误的if语句,但是即使有错误,您仍然在同一个语句中执行操作,也许您希望在某个地方使用
    else

  • 其次,您使用
    A=[ab;cd]
    ,而A、c和d甚至没有定义

  • 第三,您分配给从未使用过的
    X
    Y

  • 最后,您将询问
    y
    作为输出参数,但从未对此赋值。也许你没有意识到matlab是区分大小写的


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

虽然没有错,但您通常希望在每一步都不显示输出,因此在其中一些行后添加分号。对于标量
语句,也要使用
|
而不是
。首先,应该缩进代码。它应该做什么?您希望得到什么结果(您提供的是输入而不是结果)?
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