【发布时间】:2014-09-17 03:16:01
【问题描述】:
我相信MATLAB中的大部分函数都应该能够接收矩阵输入并以矩阵的形式返回输出。
例如 sqrt([1 4 9]) 将返回 [1 2 3]。
但是,当我尝试这个循环阶乘函数时:
function k = fact(z)
if z ~= 0
k = z * fact(z-1);
else
k = 1;
end
end
当一个数字输入到事实中时,它可以完美地工作。但是,当一个矩阵输入到 fact 时,它返回矩阵本身,而不执行阶乘函数。
例如
fact(3) 返回 6 fact([1 2 3]) 返回 [1 2 3] 而不是 [1 2 6]。
感谢任何帮助。非常感谢!
【问题讨论】:
-
认为您需要一个循环,因为使用
z ~= 0您正在比较整个矩阵,我认为您需要满足z的所有元素来满足它。 -
尽管您说这些更改对您有用,但我想最好不要让这个问题得不到回答(或者如果这是正确的术语,则不接受)。那么,也许发布您自己的解决方案并接受它,或者从这里已经提出的解决方案中选择最好的一个并接受它?
标签: matlab