matlab垂直连接逻辑索引数组

时间:2017-06-16 14:02:24

标签: matlab matlab-struct

我有一个8x18结构,每个cel包含一个事件发生的列向量。我想从单个数组中连接的一些字段中获取数据,而不必循环遍历它。我似乎找不到一种方法来在一个数组中垂直连接我感兴趣的字段。

作为一个例子,我创建了以下结构,每个单元格出现1到5次:

s(62).vector(8,18).heading.occurrences=[1;2;3];
for i=1:62
    for j=1:8
        for k=1:18
            y=ceil(rand(1)*5);
            s(i).vector(j,k).heading.occurrences=rand(y,1);
        end
    end
end

现在我想获得几个单元格中的所有出现,同时保持i恒定为瞬间i = 1。我试过的是:

   %fields of interest
   a=[1 26 45];
   x=[s(1).vector(a).heading.occurrences];

然而,这会产生错误: 期望从大括号或点索引表达式输出一个,但有3个结果。

有没有人如何做到这一点而不必遍历整个结构?

1 个答案:

答案 0 :(得分:1)

你走了:

ss=s(1).vector([1 26 45]);                     
h=[ss.heading];            
cell2mat({h.occurrences}')