# Assign values of array to indices of another array

1 次查看（过去 30 天）
Georg Bauer2022-8-16

Hello!
I'm not really sure how to word my question (hence the confusing title!). I do have to arrays:
A = [1,2;3,4];
B = [11;22;33;44];
Now I would like to arrange the elements of B in the order of array A. The output should then be like that:
B(A) = [11,22;33,44]
But now I wanna leave some places of the array 0. So at position A(1,1) where there is a zero shouldn't be a vallue of B asignd to (B(1,1) therefore should stay 0 as well).
A = [0,2;3;4];
B(A) = [0,22;33;44]
Thank you!
##### 1 个评论显示隐藏 无
James Tursa 2022-8-16
Need more details. Is the indexing in A always in that order, except for some of the spots might be 0? Or could the indexing be in a different order such as A = [2,0;4,3]?

### 回答（1 个）

Chunru 2022-8-16
A = [1; 2; 3; 4];
B = [11; 22; 33; 44];
B(A)
ans = 4×1
11 22 33 44
A = [0; 2; 3; 4];
C = zeros(size(A));
C(A>0) = B(A(A>0))
C = 4×1
0 22 33 44
##### 1 个评论显示隐藏 无
Georg Bauer 2022-8-16
Awesome thank you!

### 类别

Find more on Matrix Indexing in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by