Azzera filtri
Azzera filtri

How can I create a vector

1 visualizzazione (ultimi 30 giorni)
Javier Imaz Higuera
Javier Imaz Higuera il 23 Ago 2022
Commentato: Matt J il 23 Ago 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 Commenti
Javier Imaz Higuera
Javier Imaz Higuera il 23 Ago 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 il 23 Ago 2022
You should be getting Code Analyzer messages discouraging you from growing b iteratively in the loop.

Accedi per commentare.

Risposte (1)

Matt J
Matt J il 23 Ago 2022
Modificato: Matt J il 23 Ago 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

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by