PERSISTENT 声明必须先于变量的任何使用

The PERSISTENT declaration must precede any use of the variable

在做我的 matlab 作业时,我遇到了一个非常奇怪的错误。这是我的代码:

function [z,times] = Divide(x,y)

    persistent times;

    if (y == 0)
        if (isempty(times))
            times = 1;
        else
            times = times + 1;
        end
    end

    z = x/y;
end

当 运行 时,这给了我错误:

Error: File: Divide.m Line: 3 Column: 16
The PERSISTENT declaration must precede any use of the variable times.

这很奇怪,因为它告诉我需要先将变量声明为持久变量,然后再将其声明为持久变量 (!?)。我不知道我在这里做错了什么,所以如果我应该使用一些奇怪的解决方法,请告诉我。

错误消息的意思是:在将 'times' 声明为持久变量之前,您已经使用了它。正如您在 return 变量中使用 'times'。

其中一个解决方案可能是为 'times' 保留两个不同的变量,一个用于持久变量,另一个用于 return 变量。

在此处粘贴我的更改供您参考。祝你好运!

function [z,times] = Divide(x,y)
    persistent p_times;

    if (y == 0)
        if (isempty(p_times))
            p_times = 1;
        else
            p_times = p_times + 1;
        end
    end

    times = p_times;
    z = x/y;
end