How can I create a function to access substructure values?

MathWorks Example.png
I'd like to write a function which can access the values of a substructure. For example, if I have structure (USA), containing another (states) then values within that substructure, I know I could access the GDP of the state PA through:
USA.PA.GDP
How can I create a generic function, GetGDP so that I can get the same result by
GetGDP(PA).
Similarly, I could enter any state (i.i MD or CA) and return the GDP of that given state.
This is a simplified example of a more complex system, but this is the fundamental challenge I am facing

 采纳的回答

Using dynamic field names, you don't even need the function. But if you do, it is quite simple.
structName.(dynamicExpression)
USA.PA.GDP=1
USA.MD.GDP=2;
USA.PA.GDP
getGDP(USA,'PA')
function out=getGDP(StructVar,StateName)
out=StructVar.(StateName).GDP;
end

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Specialized Power Systems 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by