Re: [問題] 如何將矩陣加入個數已回收
: A = [ 6, 2, 3, 4, 5 ];
: B = [ 1, 1, 2, 3, 1 ];
: 其中 A 是主要的矩陣
: 然後 B 是要重複的個數
: 要怎麼樣才能快速求得
: C = [ 6, 2, 3, 3, 4, 4, 4, 5 ];
: 雖然有想過要手動...
: 不過有點長自己打錯也不知道...
: 且還有兩列一整個很麻煩...
: 不知道哪位大大有較方便的寫法!?
我現在沒有matlab可以用
但有個想法
希望板上有人可以幫我證實
for i=1:length(B)
C0=rep(A(1,i) , [1,B(1,i)]);
%然後讓C0一直加到C矩陣的後面
end
這想法不知道可不可以?
中文化:
i=1 ==> A(1,i)=6 重複 B(1,i)=1 次 ==> C0=[6] ==> C=[6]
i=2 ==> A(1,i)=2 重複 B(1,i)=1 次 ==> C0=[2] ==> C=[6 2]
i=3 ==> A(1,i)=3 重複 B(1,i)=2 次 ==> C0=[3 3] ==> C=[6 2 3 3]
這樣~~
或是採用線性代數的內積讓A的第i個數字重複n次這樣
C0=A(1,i)*ones(1,B(1,i));
--------------------------------以下更新-------------------------------------
感謝版友的協助
C=zeros(sum(B),1);
base=1;
for i=1:numel(B)
C(base:(base+B(i)-1))=A(i);
base=base+B(i);
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.29.35.158
→
11/19 16:08, , 1F
11/19 16:08, 1F
→
11/19 16:08, , 2F
11/19 16:08, 2F
※ 編輯: schumi3019 來自: 163.29.35.158 (11/19 16:38)
※ 編輯: schumi3019 來自: 59.121.135.145 (11/19 23:53)
討論串 (同標題文章)