如何用matlab实现sql里的group by

如何用matlab实现sql里的group by,第1张

在金融数据处理里经常需要对每只股票的信息进行汇总,有下面一个例子;

a={'000001',10;'000001',20;'000002',10;'000002',20;'000002',30};

需要这样的结果

{'000001',30;'000002',60}

本人接触matlab时间不长,提供以下思路,看看大家有没更好更简洁的解决办法;

%% 用matlab实现sql里的group by

a={'000001',10;'000001',20;'000002',10;'000002',20;'000002',30};

%取出需要遍历的股票代码

b=unique(a(:,1));

%每次取出单只股票进行求和

sum_a=[];

for i=1:length(b)

temp1=a(find(strcmp(a(:,1),b(i,1))),:);

sumb={b(i,1),sum(cell2mat(temp1(:,2)))};

sum_a=[sum_a;sumb];

end

您好

设cell数据为data,用一个循环就可以了: for i=1:length(data), eval(sprintf('a%i=data{%i};',i,i)); end

仅供参考~

以上就是关于如何用matlab实现sql里的group by全部的内容,包括:如何用matlab实现sql里的group by、如何将SQL数据库中的mat文件导入到matlab、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9767447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存