将递归函数值存储在MATLAB中

时间:2016-04-12 11:44:42

标签: matlab recursion

 function [miu_tau] = CARE_SAV(beta,Yt,t,miu_1)

    if  t > 1  
        miu_tau =beta(1)+beta(2) * ...
                 [CARE_SAV(beta, Yt, t-1, miu_1)]+beta(3)*abs(Yt(t-1));
    else 
        miu_tau = miu_1
    end

大家好,我是Matlab的新手,只是尝试编写一个非常简单的递归函数。通过指定所有变量,该函数运行良好。但是我想在运行函数时存储每个miu_tau的值。我从另一个答案中尝试了以下内容

function [miu_tau] = CARE_SAV(beta,Yt,t,miu_1)
    miu_tau={}
    if  t > 1  
        miu_tau =[miu_tau; beta(1)+beta(2) * ...
                 [CARE_SAV(beta, Yt, t-1, miu_1)]+beta(3)*abs(Yt(t-1))];
    else 
        miu_tau = [miu_tau;miu_1]
    end

它没有用。有人能告诉我如何在这里存储递归函数的值吗?

非常感谢。

2 个答案:

答案 0 :(得分:0)

我自己想通了。通过在这里添加一个全局变量,我可以存储通过递归过程计算的所有值。

JSON.parse

答案 1 :(得分:0)

function [miu_tau] = CARE_SAV(beta,Yt,t,miu_1)

miu_tau=[];
    if  t > 1  
        miu_tau =[miu_tau; beta(1)+beta(2) * ...
                 [CARE_SAV(beta, Yt, t-1, miu_1)]+beta(3)*abs(Yt(t-1))];
    else 
        miu_tau = [miu_tau;miu_1]
    end

这应该有效。而不是单元格,使用矩阵表示法。