创建列向量(100行)的结构(25个字段)。如何提取其特定的行。例如,
s.a=[1 2 3 4 5 6]'
s.b=[5 2 8 1 0 4]'
s.c=[9 7 0 1 3 5]'
% 2 to 4 rows to be extracted
% expected output
t.a=[2 3 4]'
t.b=[2 8 1]'
t.c=[7 0 1]'
在结构上建立索引无法正常工作。 可能是通用的方式。
答案 0 :(得分:7)
您可以简单地使用structfun
t = structfun(@(x)x(2:4),s,'UniformOutput',false)
答案 1 :(得分:1)
使用函数keyword_cap
将结构转换为数组,提取行,然后再转换回去。
struct2array
答案 2 :(得分:1)
只需选择结构中的特定行。
% getting the fieldnames of the struct
field = fieldnames(s)
% length of the struct
len = length(field)
startRow = 2;
endRow = 4;
for ii = 1:1:len
t.(field{ii,1}) = s.(field{ii,1})(startRow:endRow)
end