这个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、c和d甚至没有定义A=[ab;cd]
- 第三,您分配给从未使用过的
和X
Y
- 最后,您将询问
作为输出参数,但从未对此赋值。也许你没有意识到matlab是区分大小写的y
总而言之,它现在只是一个奇怪的函数。不要忘了检查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