Fastest way to create N by 1 matrix which contain lots of zero without using for loop

I want to express n x 1 matrix, X
X = [ a; a; a; a; b; 0; 0; 0; b; 0; 0; 0; (...) b; 0; 0; 0; b; 0; 0; 0; c; c; ] ("b; 0; 0; 0;" block is repeated N times)
What I first design is that:
A = a * ones(4,1) ; B = zeros(4,1); B(1) = b ; C = c * ones(2,1); X = [ A ; B ; B ; (...) B ; B ; C ] ;
But the problem is that I cannot set a number of center block. How can I code it?
Thanks in advance :D

 採用された回答

OCDER
OCDER 2018 年 10 月 12 日
a = 1;
b = 2;
c = 3;
N = 10;
D = [repelem(a, 4, 1);
repmat([b; 0; 0; 0], N, 1);
repelem(c, 2, 1)];

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeSparse Matrices についてさらに検索

質問済み:

2018 年 10 月 12 日

コメント済み:

2018 年 10 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by