matlab垂直连接逻辑索引数组
matlab vertically concatenate logical indexed arrays
我有一个 8x18 结构,每个单元格包含单个事件发生的列向量。我想从这些连接在单个数组中的一些字段中获取数据,而不必遍历它。我似乎无法找到一种方法来将我感兴趣的字段垂直连接到一个数组中。
作为示例,我创建了以下结构,每个单元格出现 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=1 时刻保持 i 不变。我试过的是:
%fields of interest
a=[1 26 45];
x=[s(1).vector(a).heading.occurrences];
然而,这会产生错误:
预期从花括号或点索引表达式输出一个,但有 3 个结果。
有没有人可以不用遍历整个结构来做到这一点?
给你:
ss=s(1).vector([1 26 45]);
h=[ss.heading];
cell2mat({h.occurrences}')
我有一个 8x18 结构,每个单元格包含单个事件发生的列向量。我想从这些连接在单个数组中的一些字段中获取数据,而不必遍历它。我似乎无法找到一种方法来将我感兴趣的字段垂直连接到一个数组中。
作为示例,我创建了以下结构,每个单元格出现 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=1 时刻保持 i 不变。我试过的是:
%fields of interest
a=[1 26 45];
x=[s(1).vector(a).heading.occurrences];
然而,这会产生错误: 预期从花括号或点索引表达式输出一个,但有 3 个结果。
有没有人可以不用遍历整个结构来做到这一点?
给你:
ss=s(1).vector([1 26 45]);
h=[ss.heading];
cell2mat({h.occurrences}')