Mulitpling a scalar to specfic numbers in a vector

I need to multiply random numbers in a vector by a different scalar depending on what numbers are in the vector. For example, [1 3 5 10 15 17 20 25 30]; I would have to multiply the 1,3 and 5 by 2, and the 10,15,17 by 5, but the 20,25, and 30 would be multiplied by 10. So the vector would look like [2 6 10 50 75 85 200 250 300].

 Accepted Answer

One way:
[1 3 5 10 15 17 20 25 30].*repelem([2,5,10],3)
ans = 1×9
2 6 10 50 75 85 200 250 300

3 Comments

what would you do if it wasn't in sets of 3
Then explicitly form the vector of scalars associated with the elements of the random vector.
[1 3 5 10 15 17 20 25 30].*[2 2 2 5 5 5 10 10 10]
ans = 1×9
2 6 10 50 75 85 200 250 300
what would you do if it wasn't in sets of 3
Use this syntax instead,

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Release

R2022a

Tags

Asked:

on 7 Sep 2022

Commented:

on 8 Sep 2022

Community Treasure Hunt

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

Start Hunting!