# Extract columns into new variables efficently

조회 수: 2(최근 30일)
Santos García Rosado 2021년 4월 21일
댓글: Santos García Rosado 2021년 4월 22일
Hi Mathwork's community,
So I have a Matrix A such as:
A= [1 1 2 2 3 3 1 1 2 2 3 3; 1 1 2 2 3 3 1 1 2 2 3 3];
And a matrix B, which is the matrix that I'd like to separate into three different variables. (Note: There will always be three variables).
B = [10 20 30 40 50 60 70 80 90 100 110 120; 1 2 3 4 5 6 7 8 9 10 11 12];
Variable1 corresponds to B positions where A values are equal to 1, Variable2 corresponds to B positions where A values are equal to 2 and Variable3 corresponds to B positions where A values are equal to 3. The expected output should be:
Variable1 =[10 20 70 80; 1 2 7 8]
Variable2 = [30 40 90 100 ; 3 4 9 10]
Variable3 = [50 60 110 120; 5 6 11 12]
Santos
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Santos García Rosado 2021년 4월 21일
Hello Walter. Thank's for the question. Clearly, I didn't make my-self clear enoguh on that part. All the rows of A will be equal to the first row and will always be 1, 2 and 3 values.

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

### 채택된 답변

Jeff Miller 2021년 4월 21일
A= [1 1 2 2 3 3 1 1 2 2 3 3; 1 1 2 2 3 3 1 1 2 2 3 3];
B = [10 20 30 40 50 60 70 80 90 100 110 120; 1 2 3 4 5 6 7 8 9 10 11 12];
type1 = A(1,:) == 1;
Variable1 = B(:,type1);
% et cetera
##### 댓글 수: 1표시숨기기 없음
Santos García Rosado 2021년 4월 22일
Thank's Jeff. That'll do.

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

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by