to select consecutive more than one column in matlab having difference
1 次查看(过去 30 天)
显示 更早的评论
Hello everyboby, I have a matrix named eta=54×1800.for selecting specific rows and columns typically we used e.g result=eta(:, 86:90:1800); But here I need to select consecutive 5 columns 86,87,88,89,90 each having difference 90, e.g after 86,87,88,89,90 I want to get 176,177,178,179,180.I try like result=eta(:,[86:90:1800,87:90:1800,88:90:1800,89:90:1800,90:90:1800]); but it does not give the result of consecutive columns.
0 个评论
采纳的回答
Stephen23
2017-2-26
编辑:Stephen23
2017-2-26
Sort the indices to get consecutive columns adjacent to each other:
idx = sort([86:90:1800,87:90:1800,88:90:1800,89:90:1800,90:90:1800])
eta(:,idx)
Or without having to write that long list:
>> vec = 86:90;
>> C = arrayfun(@(b)b:90:1800, vec, 'Uni',0);
>> idx = sort([C{:}])
or generate them in the correct order in the first place:
>> vec = 86:90;
>> idx = bsxfun(@plus,vec(:),0:90:1800-90);
>> idx = idx(:).'
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Discrete Math 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!