Re: 依照向量數字產生1或0已回收
※ 引述《jcjj (珍惜我們的緣份)》之銘言:
: ※ 引述《jcjj (珍惜我們的緣份)》之銘言:
: : 請問:
: : 有一個向量:A=[4 5 3 4]
: : 但我想要根據A來做出: B=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
: : ------- --------- ----- -------
: : 4個1 5個1 3個1 4個1
: : 但又不想用for 迴圈,請問有什麼辦法呢?
: : 同理,我若要做出0的向量該如何
: 多謝推文的回覆:
: 不過後來發現,原來我要的是:
: 給定兩個向量 A=[4 5 3 4],C=[2 1 0 3]
: 做出依照A向量的值做出數個1,且依照C向量的值做出數個0
: 兩者交錯放入向量D,使得:
: D = [1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0]
: ------- ^^^ --------- ^^^ ----- ^^^ ------- ^^^^^
: 4個1 2個0 5個1 1個0 3個1 0個0 4個1 3個0
: 故D會等於:[1111001111101111111000]
: 想請問有不用for迴圈的方法嗎?
這是我目前想到的解法,不用迴圈,不過不保證速度就是了。
A = [4 5 3 4];
C = [2 1 0 3];
X = arrayfun(@(x)ones(1, x), A, 'UniformOutput', false);
Y = arrayfun(@(x)zeros(1, x), C, 'UniformOutput', false);
Z = reshape([X; Y], 1, []);
D = cell2mat(Z);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.76.79
推
08/13 13:51, , 1F
08/13 13:51, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):