String Matlab函数-如何使用字符串输入访问结构?

String Matlab函数-如何使用字符串输入访问结构?,string,matlab,function,String,Matlab,Function,如果我有这样一个函数: function [ out ] = call(a) out = s.a end 如何让它通过call('hello')或类似的方式访问结构s.hello 附带问题:是否也可以使用这样的函数访问变量“hello” 提前谢谢,你们太棒了 我会像这样使用动态结构访问: s.(a) 更多信息请访问 另外,如果我们看一下你的示例函数,我注意到你没有将结构作为参数传递,也许它是全局的,但这里有一个将你的函数用作框架的技术示例: function out = call(s,a)

如果我有这样一个函数:

function [ out ] = call(a)
out = s.a
end
如何让它通过call('hello')或类似的方式访问结构s.hello

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


提前谢谢,你们太棒了

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

s.(a)
更多信息请访问

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

function out = call(s,a)
  out = s.(a);
end
然后,要使用该函数,我尝试:

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

s = 

    hello: 42

>> call(s,'hello')

ans =

    42
工作没有递归限制伟大!如果您仍然得到一个递归函数,请尝试在问题中添加更多的代码,我们会找到问题的根源


HTH

我已经试过了,但它给了我错误,一个是这样的:???已达到最大递归限制500。使用set(0,'RecursionLimit',N)更改限制。请注意,超出可用堆栈空间可能会使MATLAB和/或计算机崩溃。我只是简单地使用了像a.hello a.ciao这样的结构,并用上面的state function test=call('hello')@Lasse调用了它,在这里查看我的更新,希望这对您有所帮助!好的,似乎它的结构名有问题,我也必须为函数提供数据,对吗?