我在代码中遇到了本地功能方面的问题,所以我在下面贴了一个简单的例子:
function [avg,testvar] = test(x) %Warning
n = length(x);
avg = mymean(x,n);
end
function [a,testvar] = mymean(v,n)
a = sum(v)/n;
testvar=123;
end
人们可能会看到我正在尝试的东西;将testvar
传递出本地函数。但Matlab会返回警告:
"The function return value 'testvar' might be unset"
关于我已注释的行"%警告"。
解决这个问题的最佳方法是什么?
答案 0 :(得分:4)
您需要指定test()的第二个输出的值。否则,MATLAB如何知道它的值应该是什么?它不知道mymean()的第二个输出应该被路由到test()的第二个输出。也许这会解决你的问题。
function [avg,testvar] = test(x) %Warning
n = length(x);
[avg, testvar] = mymean(x,n);
end
function [a,testvar] = mymean(v,n)
a = sum(v)/n;
testvar=123;
end
答案 1 :(得分:0)
function
之后的括号之间的变量是输出变量。
在您的第一个函数中,您没有为testvar
分配任何值,因此警告。如果在第一个函数中添加testvar = 123;
,警告就会消失。或者您可以从输出变量中删除testvar
,并保留:
function avg = test(x)