首頁>技術>

前言:本文重點

如何在"免費"情況下使用matlab的正式版工具箱;

使用matlab連線mongodb資料庫的方法和注意事項;

備註:matlab版本>=2017b(最近2018版大部分和諧版本不能激活了,建議用2019版)

作者經驗談

matlab和c++、python都可以連線mongodb資料庫,對其進行讀寫和資料分析,但是根據作者的使用經驗(飽受折磨)

②python比較簡單,只需要安裝mongodb庫,函式使用也方便,只是可視性稍微差一點;

③matlab最簡單,當然這只是最近幾年出現了mongodb工具箱之後的情況,最早用java間接驅動mongodb時簡直和c++一樣地獄難度。但是雖然有了方便的工具箱,奈何DGZY亡我之心不死,只有正式版才能安裝這個工具箱(社群版不自帶該工具箱,需單獨安裝有試用期,和諧版更是呵呵了),這叫我等苦逼程式設計師情何以堪,所以經過各種嘗試,總結出一個比較簡單可以在和諧版上使用的方法。

所以本文只是針對matlab使用工具箱連線mongodb資料庫的方法。

網上的一些其他方法經測試不能用,版本太老或者操作複雜安裝失敗

1、matlab的mongodb資料庫的兩種安裝方法

在matlab2017b之後,matlab的附加功能中可以載入專用的mongodb工具箱Database Toolbox Interface for MongoDB。這個安裝簡便,程式碼也最方便。

1.1正式版

注意:①正式版②需要註冊matlab賬戶才能下載安裝

1.2和諧版

安裝方法:不在附加功能中下載該工具箱,而是透過mongodb.mlpkginstall檔案,直接安裝

注意:①和諧版matlab②註冊matlab賬戶(免費註冊)

步驟1:把mongodb.mlpkginstall放到matlabtoolbox資料夾;

步驟2:開啟matlab,定位到toolbox資料夾,雙擊mongodb.mlpkginstall安裝即可

步驟三:這時會彈附加功能視窗,需要登入matlab的註冊賬戶,填入賬號密碼即開始下載安裝

【特別注意:安裝工具箱過程需要關閉360、電腦管家等防毒軟體,否則會下載失敗,真搞不懂它們為啥攔截這個,正事不幹】

安裝完成後就能看到了,而且這個不同於試用版,雖然是和諧版matlab,但工具箱是可以長期使用的。

2、matlab連線mongodb資料庫案例

案例一:簡單讀寫

% 測試MongoDBclcclearclose all%% 建立連線server = "localhost";port = 27017;dbname = "MarkeDB"; % 資料庫名conn = mongo(server, port, dbname);disp(conn)%% 建立表tabname = 'test';createCollection(conn, tabname)%% 插入資料data.time = now;data.data = randn(1, 1000);insert(conn, tabname, data);%% 讀取資料items = find(conn, tabname);%% 斷開連線close(conn);

案例二:金融資料處理案例,讀取和資料轉換(因為一般讀取到的mongodb資料為cell,而且是個struct,不能直接使用,需要處理一下)

% 測試MongoDBclcclearclose all%% 建立連線server = "localhost";port = 27017;dbname = "MarkeDB"; % 資料庫名conn = mongo(server, port, dbname);disp(conn)%% 建立表tabname = 'RB2101';%createCollection(conn, tabname)%% 插入資料%data.time = now;%data.data = randn(1, 1000);%insert(conn, tabname, data);%% 讀取資料items = find(conn, tabname);[m,n]=size(items)for i=1:m    Date(i)=items{i}.dt;    Time(i)=items{i}.time;    Open(i)=items{i}.open;    High(i)=items{i}.high;    Low(i)=items{i}.low;    Close(i)=items{i}.close;    Vol(i)=items{i}.volume;enddata=[Date',Time', Open',High',Low',Close',Vol'];  %% 資料格式轉換2,針對修改mongdb的_id,結構被破壞情況%time=cell2mat({items.time});   %{items.Close}大括號struct轉為cell,cell再轉為mat。%closeprice=cell2mat({items.close}); %% 斷開連線close(conn)
後文:各位對於程式碼和安裝配置有什麼疑問的話可以評論留言或者私信,mongdb資料庫軟體雖然功能強大,近幾年勢頭強勁,但技術支援是真的爛到家了;使用過程各種問題,參考案例和軟體公司的輔助支援幾乎沒有(當然可能和我白嫖及使用方向有點偏有關,他們懶得理)。還是希望使用這個資料庫的朋友多交流心得吧。

#程式設計師##MATLAB##MongoDB#

12
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 一文講透,帶你學會用Python繪製帶誤差棒的柱狀圖和條形圖