matlab 函数递归死循环怎么改?

以下是源程序:functionmask=shift2mask(prpoly,shift)error(nargchk(2,2,nargin,'struct'));ifiss... 以下是源程序:
function mask = shift2mask(prpoly, shift)

error(nargchk(2,2,nargin,'struct'));

if isscalar(prpoly)
if (prpoly < 3) % => [1 1]
error(message('comm:shift2mask:InvalidPrpolyParameter'));
end
prpoly = de2bi(prpoly, 'left-msb');
end

if ( ~( isvector(prpoly) && ~isempty(prpoly) && ~isscalar(prpoly) ) | ...
any(prpoly~=1 & prpoly~=0) | prpoly(1)==0 | prpoly(end)==0)
error(message('comm:shift2mask:InvalidPrpoly'));
end

if ( ~isscalar(shift) | ~isreal(shift) | floor(shift) ~= shift )
error(message('comm:shift2mask:ShiftNotScalarInt'));
end

ord = length(prpoly)-1;
if ord > 53
error(message('comm:shift2mask:OrderGreaterThan53'));
end

shift = rem(shift, 2^ord - 1);
if (shift < 0)
shift = shift + 2^ord - 1;
end

% Function call函数调用
mask = shift2mask(prpoly, shift);
出现错误:
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.

Error in shift2mask
求大神指导怎么改?尝试过改 set(0,'RecursionLimit',N)中的N为1000甚至1500,都不行。改1500直接关闭了
展开
 我来答
panlgtomime
2015-05-16 · TA获得超过415个赞
知道答主
回答量:313
采纳率:0%
帮助的人:64万
展开全部
<p>%可以这样写:</p> <p>function F = nn(n) ??? if n<=1???????????????????? %... ??? %递归调用 ??? end end</p> <p>%Matlab 2009 + Win7 32位 测试通过</p> <p>%运行结果如下:</p> ...
追问
呃,有点看不懂,大神能给详细解释一下么?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式