1

如果我有这样的功能:

function [ out ] = call(a)
out = s.a
end

我怎样才能让它通过 call('hello') 或类似的东西访问结构 s.hello?

附带问题:是否也可以使用这样的函数访问变量“hello”?

提前谢谢你们,你们太棒了!

4

1 回答 1

3

我会像这样使用动态结构访问:

s.(a)

Mathworks 网站上了解更多信息!

另外,如果我们查看您的示例函数,我注意到您没有将结构作为参数传递,也许它是全局的,但这里有一个使用您的函数作为框架的技术示例:

function out = call(s,a)
  out = s.(a);
end

然后使用该功能,我尝试:

>> s = struct('hello',42)

s = 

    hello: 42

>> call(s,'hello')

ans =

    42

没有递归限制,效果很好!如果您仍然获得递归函数,请尝试将更多代码添加到问题中,我们将深入了解!

高温高压

于 2013-06-19T16:39:37.503 回答