MATLAB: “Subscripted assignment dimension mismatch” Please correct the program. tell me idea/logic to make sequence

arrayfor loopMATLAB

s = [30 30 30 30 30 30 0 0 0 0];
s = sort(s, 'descend'); %sorting sequence s
uniques = unique(s); % finding unique elements
for k = 1: length(uniques)
ua(:,:,k) = repmat(uniques(:,k),1 ,(length(s))); %repeating unique values for combine
end
for k= 2:length(s)
for j = length(s)-2:-1:1
for l = 1:6
ua1(:,:,1) = [ua(1, 1:j, 1), ua(1, 1:k, 2)]; %cut and combine values
end
end
end
output ua1
ua1 =
0 0 0 0 0 0 0 0 30 30
my loop for ua1 is not working. please help me.
I want to generate sequence
ua1(:,:,1) = [0 0 0 0 0 0 0 0 30 30];
ua1(:,:,2) = [0 0 0 0 0 0 0 30 30 30];
ua1(:,:,3) = [0 0 0 0 0 0 30 30 30 30];
ua1(:,:,4) = [0 0 0 0 0 30 30 30 30 30];
ua1(:,:,5) = [0 0 0 0 30 30 30 30 30 30];
ua1(:,:,6) = [0 0 0 30 30 30 30 30 30 30];
or if possible tell me trick to make
[0 0 0 0 0 0 0 0 0 30;
0 0 0 0 0 0 0 0 30 30;
0 0 0 0 0 0 0 30 30 30;
0 0 0 0 0 0 30 30 30 30;
0 0 0 0 0 30 30 30 30 30;
0 0 0 0 30 30 30 30 30 30;
0 0 0 30 30 30 30 30 30 30;
0 0 30 30 30 30 30 30 30 30;
0 30 30 30 30 30 30 30 30 30];

Best Answer

Don't waste time with all of those loops when you can simply use hankel to generate the whole matrix:
>> hankel(zeros(1,9),[0,30*ones(1,9)])
ans =
0 0 0 0 0 0 0 0 0 30
0 0 0 0 0 0 0 0 30 30
0 0 0 0 0 0 0 30 30 30
0 0 0 0 0 0 30 30 30 30
0 0 0 0 0 30 30 30 30 30
0 0 0 0 30 30 30 30 30 30
0 0 0 30 30 30 30 30 30 30
0 0 30 30 30 30 30 30 30 30
0 30 30 30 30 30 30 30 30 30