簡體   English   中英

創建變量名稱與Matlab中變量值相同的嵌套結構?

[英]Create Nested Structures with variable name same as value of a variable in Matlab?

我想創建一個結構,其中在第一層將具有例如以下變量的名稱:

>> 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; 每個都給出一個先前分配的隨機矩陣。

我也想做同樣的事情,但要使用'i'字符串,而不僅僅是數字。 例如,讀取視頻並將每個幀中的某些特定數據存儲在具有幀號可變名稱的結構中。

預期結果

您的代碼僅定義了一個稱為i的字段30次。

您可以在每個迭代中使用變量字段名稱構建不同的字段名稱 字段名稱必須以字母開頭 ,因此您需要使用諸如f1f2等之類的名稱。 為此,您構建表示字段名稱的字符串(在這種情況下,該字符串為['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]
          ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM