假设您有一个对象A
,其属性为B
并且您想要定义一些参数
A.B
(说A.B.n1 , A.B.n2 , ....
),因为这些参数很多,你想迭代地做这个。我遇到的问题是
每当我尝试以迭代方式进行时:
for j=1:4
S=strcat('n',int2str(j));
A.B.S=j;
end
我只定义A.B.S=4
而不创建
A.B.n1=1 , A.B.n2=2,...,A.B.n4=4
。
如何让MATLAB理解我希望S
成为变量?
答案 0 :(得分:5)
您想使用dynamic field names来访问结构数据:
S = strtrim(cellstr(num2str((1:10)','n%d'))); %#'
for i=1:numel(S)
A.B.(S{i}) = i;
end
结果
>> A.B
ans =
n1: 1
n2: 2
n3: 3
n4: 4
n5: 5
n6: 6
n7: 7
n8: 8
n9: 9
n10: 10