# MATLAB: How to repeat a row by a certain factor

repmat

I have this sample matrix:
A=[2 2 2; 3 3 3; 4 4 4];
I would like to multiply each row by a certain factor (in this specific case, the first by 2, the second by 1, and the third by 3) to generate:
A_New= 2 2 2 2 2 2 3 3 3 4 4 4 4 4 4 4 4 4
Does anyone have suggestions on how to do this? I tried:
B = repmat(A,[2 1 3],1)
but this created separate matrices.

• % Creating sample dataA=[2 2 2; 3 3 3; 4 4 4];nRep=[2,1,3];% Constructing A_New as instructed.A_new=cell2mat(arrayfun(@(r) repmat(A(r,:),1,nRep(r)), ...                        1:numel(nRep), ...                        'UniformOutput',false));% printing the resultsfprintf('A=');fprintf('%d ',A_new)fprintf('\n');