我想创建一个结构,其中第一级将具有变量名称,例如: - a
>> a=struct()
a =
struct with no fields.
>> for i=1:30
a.i=rand(3);
end
>> a
a =
i: [3x3 double]
a.i
ans =
0.3477 0.2621 0.2428
0.1500 0.0445 0.4424
0.5861 0.7549 0.6878
但我想创造的是一个结构,其中' a'是一个包含30个字段的结构 其中a.1; a.2; a.3;每个都给出一个先前分配的随机矩阵。
我也想做同样的事情,但是对于我来说。字符串而不仅仅是数字。 例如,读取视频,并将每帧中的某些特定数据存储在具有帧编号变量名的结构中。
答案 0 :(得分:1)
您的代码只定义了一个名为i
的字段,共30次。
您可以使用variable field names在每次迭代中构建不同的字段名称。字段名称must begin with a letter,因此您需要使用f1
,f2
等名称作为名称。为此,您构建表示字段名称的字符串(在这种情况下该字符串为['f' num2str(i)]
)并在其周围加上括号:
for i = 1:30
a.(['f' num2str(i)]) = rand(3);
end
这给出了
a =
f1: [3x3 double]
f2: [3x3 double]
f3: [3x3 double]
f4: [3x3 double]
...