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

问题描述 投票:0回答:1

我有1个结构(该结构的名称为“ Patient_1”)struct patient_1

由1个单元格组成(单元格名称为“ A1”)cell A1

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

在Patient_1.A1内部,有2个字段,例如下面的屏幕截图patient_1.A1{1, 1}

我的问题是如何在结构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只是我想在字段上分配的标签字符串。

因此结果,每个结构都应有一个新字段,如下所示:new field on the struct

我意识到新字段已经可以在结构上成功创建,但是在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);

这是错误的屏幕截图:error

根据问题,有没有人可以帮助我解决这个问题?

matlab struct field
1个回答
0
投票

在这种情况下,我们需要避免创建内部带有结构的单元格数组。而是创建一个结构数组。这个问题是patient_1.A1{6,1}不是一个结构,而是一个单元格数组。

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

© www.soinside.com 2019 - 2024. All rights reserved.