How can I create a vector

1 回表示 (過去 30 日間)
Javier Imaz Higuera
Javier Imaz Higuera 2022 年 8 月 23 日
コメント済み: 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
Javier Imaz Higuera 2022 年 8 月 23 日
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 Center および File ExchangeMATLAB についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by