How can I create a vector

1 次查看(过去 30 天)
Javier Imaz Higuera
评论: Matt J 2022-8-23
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 个评论
Javier Imaz Higuera
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 2022-8-23
You should be getting Code Analyzer messages discouraging you from growing b iteratively in the loop.

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2022-8-23
编辑:Matt J 2022-8-23
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

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by