首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向数组指定的单元格元素添加值

向数组指定的单元格元素添加值
EN

Stack Overflow用户
提问于 2014-08-19 09:19:16
回答 2查看 61关注 0票数 3

我正在寻找一个矢量化的解决方案!

例如,我有两个数组:

代码语言:javascript
复制
idx=[1 1 1 2 2 3 3 4 4 4 5 5 6 7 8 8 8 9 9]; %%//Integers,sorted
val=[1 4 8 2 5 3 9 1 4 8 2 5 6 7 1 4 8 3 9]; %%//respective Values (could be anything)

现在,我想创建一个单元格数组,它在idx指定的元素中包含val的相应值。因此,结果应该是一个具有:

代码语言:javascript
复制
[1 4 8]
[2 5]
[3 9]
[1 4 8]
[2 5]
[6]
[7]
[1 4 8]
[3 9]

我知道我可以循环从1到9的值,并在idx等于循环索引的时候使用horzcat,但是我正在寻找向量化的解决方案。原因是,我试图将一个问题的循环解改为向量化的解,但我却被困在这里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-19 09:27:37

使用accumarray

代码语言:javascript
复制
 out = accumarray(idx(:),val(:),[],@(x){x},{});
票数 7
EN

Stack Overflow用户

发布于 2014-08-19 09:28:00

代码语言:javascript
复制
mat2cell(val,1,diff([0,find(diff(idx)),numel(idx)]))

也许有人找到了摆脱find的可能性,那么它可能会更快。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25379773

复制
相关文章

相似问题

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