How to create a cell array by repeating a row vector

1 view (last 30 days)
I have a row vector A=[1:10]; I want to create cell array CA= cell(1,10) , where CA(1,1)= [A(1) A(1);A(1) A(1)], CA(1,2)=[A(2) A(2);A(2) A(2)]... so on and so forth. I understand that this oprtation can be done using a for loop. However, is there a way of doing this using cell array indexing, or some other faster method than a for loop ?

Answers (1)

KSSV
KSSV on 17 Apr 2022
A = 1:10 ;
B = reshape(repelem(A,4,1),2,2,10) ;
C = num2cell(B,[1 2]) ;
celldisp(C)
C{1,1,1} = 1 1 1 1 C{1,1,2} = 2 2 2 2 C{1,1,3} = 3 3 3 3 C{1,1,4} = 4 4 4 4 C{1,1,5} = 5 5 5 5 C{1,1,6} = 6 6 6 6 C{1,1,7} = 7 7 7 7 C{1,1,8} = 8 8 8 8 C{1,1,9} = 9 9 9 9 C{1,1,10} = 10 10 10 10

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!