matlab 递归深度问题
mip版 关注:259 答案:2 悬赏:20
解决时间 2021-01-18 14:23
已解决
2021-01-17 18:00
matlab 在并行操作中,对多个矩阵进行特征分解,出现了这个:Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit. Be aware that exceeding your available stack space can crash MATLAB and/or your computer.问题
随后我在代码中加入set(0,'RecursionLimit',1000),然后再次运行,还是报这个这个错误?而且还是到达500上限,这种情况该怎么处理呢?
最佳答案
2021-01-17 19:35
者,不用递归。 你的else只执行一次。就是那个表达式。 而用递归的话,调用else后就是调用下一轮的S函数。
全部回答
1楼
2021-01-17 20:02
就是自己调用自己,跟普通的递归道理相通。比如计算阶乘:
% by lyqmath
function main()
clc; clear all; close all;
num = 6;
y = compute_prod(num)
function y = compute_prod(num)
if num == 1
y = 1;
return;
else
y = num*compute_prod(num-1);
end
结果
y =
720
>> prod(1:6)
ans =
720
>>
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上信息!
推荐资讯
大家都在看