最近在搞这方面工作,折腾了很久,有些经验可以参考一下。对于较早版本math老师的方案很好,我所补充的只是最近matlab更新版本之后的新方案。
因为自matlab2017b后,针对mongodb增加了专用的工具箱【Database Toolbox Interface for MongoDB】,当然安装是不是自带的,需要在matlab工具栏的“附加功能”中下载安装。
注意,在安装之前需要先安装好mongodb,并且在matlab官网上注册好账号。其实这个工具箱也是通过第三方包mongo-java-driver驱动的,只是更加方便了。
1.jpg (77.75 KB, 下载次数: 4)
2020-8-16 09:40 上传
2.jpg (10.71 KB, 下载次数: 7)
2020-8-16 09:40 上传
这样安装好专用工具箱后,再连接mongodb的命令就十分简单
3.jpg (28.51 KB, 下载次数: 4)
2020-8-16 09:40 上传
4.jpg (19.07 KB, 下载次数: 7)
2020-8-16 09:41 上传
%%------------------------------------------------------------------------------------------
以上方法是针对获得正版授权的用户,对于暂时只想测试的用户可以安装试用版体验功能,但是本人通过matlab官网安装的matlab2020a 试用版本中,对这个工具箱一直安装不成功, 在试用版中工具箱无法正确安装后,只能无奈尝试在crack版本中尝试,之前一直认为和谐版是不受附加功能支持的,没想到还有一线生路,居然安装成功了。当然还是推荐大家去用正式版。
%%-------------------------------------------------------------------------------------------
另外注意,虽然能够读取mongodb数据了,但是读取出的是struct结构,例如本例中,数据是这样的
5.jpg (70.07 KB, 下载次数: 6)
2020-8-16 09:41 上传
6.jpg (4.92 KB, 下载次数: 7)
2020-8-16 09:41 上传
虽然要用到的Close是116个数据,但是因为items是116*1,有12个字段的struct结构,所以在使用items.Close命令时,能给出116个数据,但是a=items.Close只能得到最后一个数据。所以需要对数据结构进行转化才能得到需要的数组。
%% 数据格式转换
time=cell2mat({items.Time}); %{items.Close}大括号struct转为cell,cell再转为mat。
closeprice=cell2mat({items.Close});
%%或者[size=13.3333px] closeprice(1:length(items))=items.Close;
这样就能把struct数据转换成数组进行计算了。
7.jpg (16.63 KB, 下载次数: 7)
2020-8-16 09:41 上传
%%-------------------------------------------------------------------------------------------------------
如有问题,可以联系交流,QQ 531226209
09年上学时开始接触的matlab,一恍都十年多了。还记得十年前论坛在北航组织见面培训交流,菜鸟的我坐着火车如朝圣般赶去参加,当时懵懂无知,也不太懂和人交流,默默地听讲,吃完自助餐后又默默的回学校。后来工作使用matlab也是断断续续的,走走转转又回到这里,十年如梦,人生际遇真是让人唏嘘。