Bir yapıya derinliklerde rastgele bir sayıyı gömülebilen bir alana erişim problemi ile ilgileniyorum. İki seviyeyi kullanan somut bir örnek aşağıdadır.MATLAB'ta bir alanın bir alanına dinamik olarak nasıl erişebilirim?
midlevel.bottomlevel = 'foo';
toplevel.midlevel = midlevel;
Ben bir dize olarak alan adını geçirerek midlevel
yapısını erişebilir, örneğin:
toplevel
var ki
: -
fieldnameToAccess = 'midlevel';
value = toplevel.(fieldnameToAccess);
ama bottomlevel
yapısını aynı şekilde erişemez aşağıdaki geçerli sözdizimi değil
fieldnameToAccess
ile ilgili dönemler için bir işlev yazabilir ve sonra da istenen alanı elde etmek için yinelemeli olarak yinelemeyi seçebilirim, ancak MATLAB yerleşiklerini yalnızca alan değerini doğrudan almak için kullanmanın akıllıca bir yolu olup olmadığını merak ediyorum.
: Sen tek adımda erişmek özyinelemeli alanını gerçekleştirmek için dize ve fonksiyon GETFIELD alan adları ayıklamak için işlevini TEXTSCAN kullanabilirsiniz . toplevel (alanlar {1}, {1}) (alanlar {1} {2}) = yeniden örnekleme (getfield (üst düzey olarak, alanlar {1} {:}), ...)..; genel olarak (sadece 2 seviye olduğunu bilmeden)? – Jon