2017-02-26 5 views
-1

私は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]); 

しかし、それは連続した列の結果を与えるものではありません:

は、私はこれを試してみました。

+1

投稿を適切にフォーマットできますか?このテキストの壁を読むのは難しいです。 – Adriaan

答えて

1

を試し、抽出する領域の終わりは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 
+0

@thanks Sardar usama、Andriaan and M usman、 –

0

あなたの最初のインデックスはa(= 86)であれば、この

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 
関連する問題