作者JamesChen (业余经济学家)
看板MATLAB
标题[讨论] 两个矩阵运算
时间Sat Jul 30 09:07:23 2016
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 只是例子,实际资料大很多。
--
两个我都 google 过,前者可能因为关键字不对找不太到。
後者搜寻 rebin 找到的方法也都还是 loop。
目前我暂时都是用 loop 在做的,想问问有没有高手有解的。
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 98.30.193.49
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1469840846.A.171.html
1F:→ celestialgod: 1. arrayfun(@(a,b) b*ones(1,a), [200,300,100], [ 07/30 09:12
2F:→ celestialgod: 1,2,1],'uni',false) 07/30 09:12
3F:→ celestialgod: 2看不懂 07/30 09:14
4F:→ YoursEver: 楼上,他的2是巴斯卡三角形,b=[2,5]是指2项式展开的5次 07/30 09:22
5F:→ YoursEver: [6, 25, 1]看起来是把某几个幂次的系数加总,但规则不明 07/30 09:28
6F:→ JamesChen: 抱歉 2 没那麽复杂 b 只是 rebin 的 edge 07/30 09:35
7F:→ JamesChen: a 是有 1个1 5个2 10个3 ... 的原始资料 07/30 09:36
8F:→ JamesChen: 用 1 2 3 4 5 去 bin 过的 histogram 07/30 09:37
9F:→ JamesChen: 我想要做更宽一点的 bin 07/30 09:37
10F:→ JamesChen: 感谢一楼 arrayfunc 我太不熟了 惭愧 07/30 09:42
11F:→ wsglu: 2. temp=cumsum(a);c=temp(b) 不晓得是不是原PO要的 07/30 10:09
12F:→ JamesChen: 很接近了 再 diff 过後处理一下就是我要的了 感谢 07/30 10:24