# creating array based in another array

조회 수: 25(최근 30일)
Khairul Nur 2021년 8월 11일
댓글: Khairul Nur 2021년 8월 16일
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 2021년 8월 11일
```L = length (A);
temp = repmat(A, L, 1);
temp(1:L+1:end) = [] ;
B = reshape(temp,L-1,[]);
```
##### 댓글 수: 1표시숨기기 없음
Khairul Nur 2021년 8월 16일
tq walter :)

댓글을 달려면 로그인하십시오.

### 추가 답변(1개)

Fabio Freschi 2021년 8월 11일
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
##### 댓글 수: 1표시숨기기 없음
Khairul Nur 2021년 8월 16일
hi...ur code also working.. thank u for the code

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!