我有一个" object“结构( OBJECT_ARRAY )数组,我必须经常将其转换为对象结构的每个元素的单独数组。这可以使用arrayfun来完成。这比简单地向OBJECT_ARRAY(k).item1查询要繁琐得多,但Mathworks就是这样选择的。
在今天的例子中,我使用了这些单独的数组,并为每个元素计算了相应的派生值newItem,我需要将其添加到结构的原始数组中。所以我有一个newItems数组。
是否有一种简单的方法可以为OBJECT_ARRAY中的每个对象分配一个任务,以便(有效地)为每个索引k分配OBJECT_ARRAY(k).newItem = newItems(k)
我使用的是2015a版本。
发布于 2016-09-20 18:48:42
您不应该需要arrayfun来完成这些任务。
要获得值,您可以简单地依赖于这样一个事实:非标量struct或对象的点索引产生一个comma-separated list。如果我们用[]包围它,它将水平地将所有的值连接到一个数组中。
array_of_values = [OBJECT_ARRAY.item1];或者,如果它们都是无法连接的不同大小,请使用单元格数组
array_of_values = {OBJECT_ARRAY.item1};要执行赋值,您可以再次使用分配的左侧和右侧的逗号分隔列表。我们首先将新值放在单元格数组中,以便使用{:}自动将它们转换为逗号分隔的列表。
items = num2cell(newitems);
[OBJECT_ARRAY.item1] = items{:};https://stackoverflow.com/questions/39601585
复制相似问题