如何从矩阵中选择选择性指数基柱?

时间:2017-02-26 08:26:13

标签: matlab matrix multiple-columns

我有一个名为eta(54×1800)的矩阵。为了选择特定的行和列,我们通常使用:

result = eta(:, 86:90:1800);

但在这里,我需要选择连续的 5列 86,87,88,89,90,每个列都有差异90。例如86, 87, 88, 89, 90之后,我想获得176, 177, 178, 179, 180

我试过了:

result=eta(:,[86:90:1800,87:90:1800,88:90:1800,89:90:1800,90:90:1800]); 

但它没有给出连续列的结果。

2 个答案:

答案 0 :(得分:1)

如果你的第一个索引是a(= 86),要提取的区域的结尾是b(= 1800),差异是d(= 90),那么你会这样做:

s = a:d:b; % create all start indices
k = cumsum([s; ones(4,numel(s))],1) % compute all consecutive indices
result = eta(:,k(:)); % exctract all indeces using linear index for the column subscript

答案 1 :(得分:0)

试试这个

mat=rand(54,1800); %your eta matrix
mywish=[86:1:90]; %your wish to select consective columns
for i=1:length(mywish)
    results=mat(:,mywish(i):90:1800) %getting the column interval 90
end