Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在循环中创建多个子结构,并使用数组索引_Matlab_Struct - Fatal编程技术网

Matlab 在循环中创建多个子结构,并使用数组索引

Matlab 在循环中创建多个子结构,并使用数组索引,matlab,struct,Matlab,Struct,假设我有一个名为data的结构,我想创建三个子结构,称为area、Incidents和industry。这些名称存储在一个文件中。 我的方法如下所示: names={'area','inhabitants','industrie'}; for i=1:length(names) data.(names(i)) = struct; end 我得到这个错误:“动态结构引用的参数必须计算为有效的字段名。” 然而,这样做是可行的: somestr = 'area'; data.(somestr) =

假设我有一个名为data的结构,我想创建三个子结构,称为area、Incidents和industry。这些名称存储在一个文件中。 我的方法如下所示:

names={'area','inhabitants','industrie'};
for i=1:length(names)
data.(names(i)) = struct;
end
我得到这个错误:“动态结构引用的参数必须计算为有效的字段名。”

然而,这样做是可行的:

somestr = 'area';
data.(somestr) = struct;
这就是为什么我尝试:

names={'area','inhabitants','industrie'};
for i=1:length(names)
    somestr = names(i);
    data.(somestr) = struct;
end
但是我得到了和以前一样的错误。
我想这样做,因为我必须导入大量数据并将其存储在Matlab中。如果以后有人想更改代码,只需更改数组可能会容易得多。

直到单元格的特定元素被删除,该元素将是一个逐个的
单元格,而不是
字符。所以你只需要花括号:

names={'area','inhabitants','industrie'};
for i=1:length(names)
    data.(names{i}) = struct;
end

在指定单元格的特定元素之前,该元素将是一个接一个的
单元格
,而不是
字符
。所以你只需要花括号:

names={'area','inhabitants','industrie'};
for i=1:length(names)
    data.(names{i}) = struct;
end

非常感谢你!非常感谢你!