首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“逆向”

“逆向”
EN

Stack Overflow用户
提问于 2016-09-20 18:45:31
回答 1查看 61关注 0票数 1

我有一个" object“结构( OBJECT_ARRAY )数组,我必须经常将其转换为对象结构的每个元素的单独数组。这可以使用arrayfun来完成。这比简单地向OBJECT_ARRAY(k).item1查询要繁琐得多,但Mathworks就是这样选择的。

在今天的例子中,我使用了这些单独的数组,并为每个元素计算了相应的派生值newItem,我需要将其添加到结构的原始数组中。所以我有一个newItems数组。

是否有一种简单的方法可以为OBJECT_ARRAY中的每个对象分配一个任务,以便(有效地)为每个索引k分配OBJECT_ARRAY(k).newItem = newItems(k)

我使用的是2015a版本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-20 18:48:42

您不应该需要arrayfun来完成这些任务。

要获得值,您可以简单地依赖于这样一个事实:非标量struct或对象的点索引产生一个comma-separated list。如果我们用[]包围它,它将水平地将所有的值连接到一个数组中。

代码语言:javascript
复制
array_of_values = [OBJECT_ARRAY.item1];

或者,如果它们都是无法连接的不同大小,请使用单元格数组

代码语言:javascript
复制
array_of_values = {OBJECT_ARRAY.item1};

要执行赋值,您可以再次使用分配的左侧和右侧的逗号分隔列表。我们首先将新值放在单元格数组中,以便使用{:}自动将它们转换为逗号分隔的列表。

代码语言:javascript
复制
items = num2cell(newitems);
[OBJECT_ARRAY.item1] = items{:};
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39601585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档