如何使用 MATLAB 在结构内创建新字段?

How create new field inside the struct using MATLAB?

我有 1 个结构(结构的名称是 "patient_1")

由 1 个单元格组成(单元格的名称是 "A1")

在单元格A1中,有36x1个值,它们都是结构体。

patient_1.A1里面有2个字段,如下图

我的问题是如何在结构 patient_1.A1{1, 1}?

中创建新字段

这是我目前的代码:

% looping each struct and put each name of files as variable using
for i=1:l_files1
    label1(i,1) = string(files1(i).name); % get name field 
    patient_1.A1{i,1}.name = label1(i,1);
end
代码上的

label1 只是我想在字段上分配的标签字符串。

所以结果,每个结构都应该有一个像这样的新字段:

我意识到新字段已经在结构上成功创建,但是在 MATLAB 上我得到了这个错误:

Unable to perform assignment because dot indexing is not supported for    variables of this type.

Error in Main (line 38)
    patient_1.A1{i,1}.name = label1(i,1);

错误截图如下:

根据问题,有没有人可以帮我解决一下?

在这种情况下,我们需要避免创建其中包含结构的单元格数组。 而是创建一个结构数组。这个问题是 patient_1.A1{6,1} 不是一个结构体,而是一个元胞数组。

因此,只需将 patient_1.A1 创建为结构并立即获取结构中的值。