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
在做我的 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