MATLAB: How can i place an array a= [2,2,2] randomly (vertically or horizontally) into a matrix b=zeros(10×10)

arraybattleshipmatrix

how can i place an array a= [2,2,2] randomly (vertically or horizontally) into a matrix b=zeros(10×10) ?

Best Answer

%Sizes:
nz = 10;
z = zeros(nz);
a = [2 2 2];
na = numel(a);
%Engine:
dim = rand>0.5; %do we transpose
pos = randi(nz-na+1,[1 2]); %where?
z(pos(1):pos(1)+na-1,pos(2)) = a; %insert
if dim
z = z.';
end