# How do I fill a matrix with values of an one array based on another array?

28 views (last 30 days)
Maraya Biervliet on 1 Jul 2020
Commented: TADA on 1 Jul 2020
Hi,
I have a 1x5001 array Rr which contains radial distances from a pointsource. I also have an 5001x 1 array Wzr which is the weight vs. radial distance. Also there is a constant dr.
Now I need to make a 2D matrix (5000 x 5000) which is Wzr2D(a,b) = Wzr (Rr(a,b)/dr)
For example if Rr(1,2) = 10 and dr = 2 then I need the value of Wzr(5) to be placed in the matrix Wzr2D at the position (1,2).
I am a super beginner at MATLAB and I don't ever know where to begin to link all this together.
##### 1 CommentShowHide None
Adam Danz on 1 Jul 2020
To begin, learn about indexing.
It shouldn't take much time to work through that page. Indexing is necessary to know if you're using Matlab and it's a very basic tool.

Sign in to comment.

### Answers (1)

TADA on 1 Jul 2020
Edited: TADA on 1 Jul 2020

If I understood correctly, try this:

```Wzr2D(1,:) = Wzr(Rr(1:5000) / dr)
```

This should work if you can guarantee that all values of Rr/dr are valid indices of Wzr, that is, integers between 1 and 5001

##### 1 CommentShowHide None
TADA on 1 Jul 2020
I'm not sure why you want to dispose the last element of your data though, nor what's the extra dimention of Wzr2D for

Sign in to comment.

### Categories

Find more on Logical in Help Center and File Exchange

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by