数据查找matlab,MATLAB:使用矢量化查找已排序数据的统计信息

我有一些功能代码,我试图通过消除for循环来加快速度 .

我有一组x,y对中的数据作为两个向量,因此x(k)和y(k)形成一对 . 我也有一组bin边(xe) . 对于每个bin j,在该bin中存在一组x值,由xe(j)<= x(k)

完成此任务的MATLAB代码如下:

[meany, standardeviation] = ystatsvsx (xdata, ydata, xe)

meany = zeros([size(ydata,1) (length(xe)-1)]);

standarddeviation = meany;

[numx,bin] = histc(xdata, xe);

for j = 1:(length(xe) - 1)

inds = bin == j;

meany(j) = mean(ydata(inds));

standarddeviation(j) = std(ydata(inds));

end

当xe很大时,此功能变慢 . 有没有人有任何关于如何矢量化此代码以消除for循环的建议?给定箱(numx)中的数据点数是可变的 .

一个警告:长度(xe)*长度(xdata)在这些情况下非常大(长度(xdata)总是远大于长度(xe)),因此不可能使用repmat创建长度(xe)x长度(xdata)矩阵 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值