Clear Filters
Clear Filters

How can I create a vector

1 view (last 30 days)
Javier Imaz Higuera
Javier Imaz Higuera on 23 Aug 2022
Commented: Matt J on 23 Aug 2022
I want to create a vector b from the vector a, such as:
a = [2 4 3]
b = [1/2 1/2 1/4 1/4 1/4 1/4 1/3 1/3 1/3]
(note that there are as many fractions in b, as the sum of the vector a. Also, the number of different fractions correspond with the individual values of a)
Is there any easy way to generalize this example?
Thanks
  2 Comments
Javier Imaz Higuera
Javier Imaz Higuera on 23 Aug 2022
found a way:
b=[];
for i = 1:length(a)
b=[b,a(i).*ones(a(i),1)']
end
b=b.^(-1);
Matt J
Matt J on 23 Aug 2022
You should be getting Code Analyzer messages discouraging you from growing b iteratively in the loop.

Sign in to comment.

Answers (1)

Matt J
Matt J on 23 Aug 2022
Edited: Matt J on 23 Aug 2022
a=[2,4,3];
b=1./repelem(a,a)
b = 1×9
0.5000 0.5000 0.2500 0.2500 0.2500 0.2500 0.3333 0.3333 0.3333

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!