# creating array based in another array

10 views (last 30 days)
Khairul Nur on 11 Aug 2021
Commented: Khairul Nur on 16 Aug 2021
Hi, i have an array nx1 (refer array 1 as below) and i want to create 2nd array based on the 1st array as follow:
array 1:
1
2
3
4
5
For example:
Loop 1: read 1st index array 1 which is 1, array 2 will be
array 2: 2 3 4 5
Loop 2: read 2nd index array 1 which is 2, array 2 will be
array 2: 1 3 4 5
Loop 3: read 3rd index array 1 which is 3, array 2 will be
array 2: 1 2 4 5
and so forth.
Is it possible without using for loops?

Walter Roberson on 11 Aug 2021
```L = length (A);
temp = repmat(A, L, 1);
temp(1:L+1:end) = [] ;
B = reshape(temp,L-1,[]);
```
Khairul Nur on 16 Aug 2021
tq walter :)

Fabio Freschi on 11 Aug 2021
Here a possible solution, where all arrays you want are in the columns of matrix a2
% number of entries in array 1
n = 5;
% create array 1
a1 = (1:n).';
% create matrix a2 as column vector
a2 = repmat(a1,n,1)
% remove diagonal entries
a2(1:n+1:n^2) = [];
% reshape a2 to obtain the matrix
a2 = reshape(a2,n-1,n);
The output is
a2 =
2 1 1 1 1
3 3 2 2 2
4 4 4 3 3
5 5 5 5 4
Khairul Nur on 16 Aug 2021
hi...ur code also working.. thank u for the code