谁能帮忙解释下setfield函数怎么用的啊,下面的例子看不懂啊
grades = [];
level = 5;
semester = 'Fall';
subject = 'Math';
student = 'John_Doe';
fieldnames = {semester subject student}
newGrades_Doe = [85, 89, 76, 93, 85, 91, 68, 84, 95, 73];
grades = setfield(grades, {level}, ...
                  fieldnames{:}, {10, 21:30}, ... 
                  newGrades_Doe);
% View the new contents.
grades(level).(semester).(subject).(student)(10, 21:30)
fieldnames = 
    'Fall'    'Math'    'John_Doe'
ans =
    85    89    76    93    85    91    68    84    95    73