如何使用 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
创建为结构并立即获取结构中的值。
我有 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
创建为结构并立即获取结构中的值。