[討論] 兩個矩陣運算

作者: JamesChen (James)   2016-07-30 09:07:23
1.
ex: a = [200 300 100];
b = [1 2 1];
要產生 c = [ones(1,200) 2*ones(1,300) ones(1,100)];
請問要怎麼用非 loop 的方式快速產生?
a b 只是舉例 實際上數字大很多,且要做很多次
2.
ex: a = [1 5 10 10 5 1];
b = [2 5];
要產生 c = [6 , 25 , 1];
就是 a 已經是 binned 過的資料了 b 是換一種方式去 bin a。
請問有沒有不用 loop 的方式。
一樣 a b 只是例子,實際資料大很多。
作者: celestialgod (天)   2016-07-30 09:12:00
1. arrayfun(@(a,b) b*ones(1,a), [200,300,100], [1,2,1],'uni',false)2看不懂
作者: YoursEver (豬是妳)   2016-07-30 09:22:00
樓上,他的2是巴斯卡三角形,b=[2,5]是指2項式展開的5次[6, 25, 1]看起來是把某幾個冪次的係數加總,但規則不明
作者: JamesChen (James)   2016-07-30 09:35:00
抱歉 2 沒那麼複雜 b 只是 rebin 的 edgea 是有 1個1 5個2 10個3 ... 的原始資料用 1 2 3 4 5 去 bin 過的 histogram我想要做更寬一點的 bin感謝一樓 arrayfunc 我太不熟了 慚愧
作者: wsglu   2016-07-30 10:09:00
2. temp=cumsum(a);c=temp(b) 不曉得是不是原PO要的
作者: JamesChen (James)   2016-07-30 10:24:00
很接近了 再 diff 過後處理一下就是我要的了 感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com