如果我有这样的功能:
function [ out ] = call(a)
out = s.a
end
如何通过call('hello')或类似的方式访问s.hello结构?
附带问题:是否也可以使用这样的函数访问变量“hello”?
先谢谢,你们真棒!
答案 0 :(得分:3)
我会像这样使用动态结构访问:
s.(a)
了解详情
另外,如果我们查看你的示例函数,我注意到你没有将结构作为参数传递,也许它是全局的,但这里有一个使用你的函数作为框架的技术的例子:
function out = call(s,a)
out = s.(a);
end
然后使用该功能,我尝试:
>> s = struct('hello',42)
s =
hello: 42
>> call(s,'hello')
ans =
42
效果很好,没有递归限制!如果您仍在使用递归函数,请尝试在问题中添加更多代码,我们将深入了解此问题!
HTH