Matrix from an array

1 回表示 (過去 30 日間)
brijesh soni
brijesh soni 2019 年 9 月 26 日
コメント済み: brijesh soni 2019 年 9 月 26 日
Let say A=1:15 is an array. How to obtain a matrix such that
B = [1 2 3 4 5 6; 4 5 6 7 8 9; 7 8 9 10 11 12; 10 11 12 13 14 15] ; %last n=3 elements of previous row repeats
  1 件のコメント
Ankit
Ankit 2019 年 9 月 26 日
You need to create a loop in case you want to do it repeated number of times
A=1:15;
B = [A(1:6);A(4:9);A(7:12);A(10:15)];

サインインしてコメントする。

採用された回答

Andrei Bobrov
Andrei Bobrov 2019 年 9 月 26 日
編集済み: Andrei Bobrov 2019 年 9 月 26 日
A=1:15;
n = 6;
k = 3;
m = numel(A);
B = A((1:k:m - n + 1)' + (0:n-1));
% for old MATLAB < R2016a
B = A(bsxfun(@plus,(1:k:m - n + 1)', (0:n-1)));
  1 件のコメント
brijesh soni
brijesh soni 2019 年 9 月 26 日
Many thanks !

サインインしてコメントする。

その他の回答 (1 件)

Bob Thompson
Bob Thompson 2019 年 9 月 26 日
Not sure how to do it without a loop or just defining the indices, but here's something simple.
A = 1:15;
for i = 1:length(A)/3-1
B(i,:) = A((i-1)*3:(i+1)*3);
end

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by