<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Matlab數據庫編程

        來源:懂視網 責編:小采 時間:2020-11-09 15:44:26
        文檔

        Matlab數據庫編程

        Matlab數據庫編程:有感于網上查到了大量相當有幫助的技術性文章,這里也把我前段時間實現的一個功能程序公布出來,供需者參考。 功能簡介:服務器R(remote)只負責網站的運行和訪問,每天獲得一批新的原始數據,服務器L(local)負責后臺運算,自動定時從服務器R的mysql里讀
        推薦度:
        導讀Matlab數據庫編程:有感于網上查到了大量相當有幫助的技術性文章,這里也把我前段時間實現的一個功能程序公布出來,供需者參考。 功能簡介:服務器R(remote)只負責網站的運行和訪問,每天獲得一批新的原始數據,服務器L(local)負責后臺運算,自動定時從服務器R的mysql里讀

        有感于網上查到了大量相當有幫助的技術性文章,這里也把我前段時間實現的一個功能程序公布出來,供需者參考。 功能簡介:服務器R(remote)只負責網站的運行和訪問,每天獲得一批新的原始數據,服務器L(local)負責后臺運算,自動定時從服務器R的mysql里讀取數

        有感于網上查到了大量相當有幫助的技術性文章,這里也把我前段時間實現的一個功能程序公布出來,供需者參考。
        功能簡介:服務器R(remote)只負責網站的運行和訪問,每天獲得一批新的原始數據,服務器L(local)負責后臺運算,自動定時從服務器R的mysql里讀取數據,在L上經過matlab編寫的算法程序運算后再遠程將結果寫回R的數據庫以實現網站的更新。全程無人值守。(L負責后臺運算,安裝matlab;R負責網絡訪問,安裝mysql)
        不同于網絡上查到的實現方法,本程序全部在m文件里編寫,不用php 或c++做接口,宗旨就是用簡單的方法實現簡單的想法。(以下假定suanfa.m子程序已經存在)


        1.編寫import_data.m子程序,實現從mysql讀取數據到matlab中.
        1)下載mysql的jdbc的java驅動,安裝到*:/Program Files/MATLAB71/java/jar/toolbox路徑下;
        2)此“路徑/文件名”添到*:/Program Files/MATLAB71/toolbox/local下的classpath.txt文件中;
        3)設置mysql下的數據庫名稱為帶有“mysql ”后綴的,比如:abcmysql;
        4)服務器R的mysql下,輸入“grant all on *.* to username@"L的IP" Identified by

        "password",允許L遠程訪問;
        5)復制如下代碼到import_data文件中
        function MM=import_data();
        timeoutA=logintimeout(5)
        % Set maximum time allowed for establishing a connection.
        connA = database('mysql', 'username', 'password','com.mysql.jdbc.Driver','jdbc:mysql:

        //R的IP:3306/abc')
        ping(connA) % Check the database status.
        cursorA=exec(connA,'SELECT ALL CONLUMA,CONLUMB,CONLUMC FROM tablename);
        setdbprefs('DataReturnFormat','numeric'); %set numeric format
        cursorA=fetch(cursorA) ; % Fetch all rows of data.
        MM=cursorA.Data; % Display the data,save the data in MM
        close(cursorA) ; % Close the cursor and the connection.
        close(connA)
        其中username,password,L/R的IP,數據庫名稱abc,tablename,sql語句都是要依實際修改的。


        2.編寫export_data.m子程序,實現從matlab寫回數據到mysql中:
        原理類似, (tablename2的表要事先建好u)復制以下程序:
        timeoutA=logintimeout(5)
        % Set maximum time allowed for establishing a connection.
        connA = database('mysql', 'username', 'password','com.mysql.jdbc.Driver','jdbc:mysql:

        //R的IP:3306/abc')
        ping(connA) % Check the database status.
        %delete the records before updating
        cursorA=exec(connA,'delete tablename FROM tablename');
        Colnames = {'COLUMNA','COLUMNB','rCOLUMNC'};%updating
        fastinsert(connA, 'tablename2', Colnames,newdata);
        close(cursorA) ;
        close(connA);
        其中username,password,R的IP,數據庫名稱abc,tablename,sql語句都是要以實際情況修改的,

        newdata就是suanfa.m程序得到結果組成的矩陣,這些結果將寫到數據庫中tablename2的表中。


        3.編寫主程序以調用這些子程序:
        4.編譯m程序為exe程序:

        (注意主程序頭部的也要加“function”呦,否則作為腳本文件不能編譯)
        1)在matlab環境中配置編譯器,輸入mbuild -setup,依提示操作;

        2)輸入mcc -m main.m suanfa.m import_data.m export_data.m生成與主程序同名的exe文件;

        3)設置windows任務計劃,添加此exe文件便可以自動定時讀取、計算、更新網站數據庫了。

        ps:matlab7.0沒有找到deploytool工具,沒法連接數據庫,要使用更高版本的matlab。

        Database Toolbox 2
        和關系數據庫進行數據交換
        Database 工具箱可以使你使用MATLAB 的數據分析
        和可視化工具對存儲在數據庫中的數據進行分析。在
        MATLAB 工作環境中, 您可以使用結構化查詢語言進
        行:
        ■ 對數據庫中的數據進行讀寫
        ■ 使用約束條件對數據庫進行操作
        您可以在MATLAB 中和絕大多數的數據庫進行交
        互, 包括Oracle、Sybase、Microsoft SQL Server、
        MySQL、PostgreSQL 以及Microsoft Access 。該工具箱
        還允許您在單個的MATLAB 任務中同時存取多個數據
        庫并且支持事務特性。它包含了Visual Query Builder
        ( 可視化查詢工具), 它可以使您在不熟悉SQL 的情
        況下和數據庫進行交互。
        Visual Query Builder
        可以快速對您的數據
        進行存取和圖表顯示
        關鍵特性
        ■ 支持ODBC/JDBC 連接的數據庫接口
        包括Oracle、Sybase、Microsoft SQL
        Server、MySQL、PostgreSQL 以及
        Microsoft Access
        ■ 從MATLAB 中直接執行查詢語句
        ■ 對于大數據量查詢, 將增量獲取數據
        ■ 在所有的數據導入和導出的過程中,
        保留數據類型
        ■ 單個的MATLAB 任務中可以同時
        存取多個數據庫
        ■ 從一個數據庫中導入數據,完成計
        算后, 將結果輸出到另外一個數據庫
        ■ 在單個事務中獲取大數據集, 或者分
        割數據, 通過多個事務來完成
        ■ 通過在一個MATLAB 會話中保持數
        據庫連接來減少需要進行輸入和輸出
        數據所需要的語句, 除非數據庫連接
        被顯式關閉
        ■ 它可以使您在不熟悉SQL 的情況下
        和數據庫進行交互
        在MATLAB 中對Microsoft Access 數據庫進行查詢

        數據庫工具箱函數列表

        數據庫訪問函數
        clearwarnings 清除數據庫連接警告
        close 關閉數據庫連接
        commit 數據庫改變參數
        database 連接數據庫
        exec 執行SQL語句和打開油標
        get 得到數據庫屬性
        insert 導出MATLAB單元數組數據到數據庫表
        isconnection 判斷數據庫連接是否有效
        isreadonly 判斷數據庫連接是否只讀
        ping 得到數據庫連接信息
        rollback 撤銷數據庫變化
        set 設置數據庫連接屬性
        sql2native 轉換JDBC SQL 語法為系統本身的SQL語法
        update 用MATLAB單元數組數據代替數據庫表的數據

        數據庫游標訪問函數
        attr 獲得的數據集的列屬性
        close 關閉游標
        cols 獲得的數據集的列數值
        columnnames 獲得的數據集的列名稱
        fetch 導入數據到MATLAB單元數組
        get 得到游標對象屬性
        querytimeout 數據庫SQL查詢成功的時間
        rows 獲取數據集的行數
        set 設置游標獲取的行限制
        width 獲取數據集的列寬

        數據庫元數據函數
        bestrowid 得到數據庫表唯一行標識
        columnprivileges 得到數據庫列優先權
        columns 得到數據庫表列名稱
        crossreference 得到主健和外健信息
        dmd 創建數據庫元數據對象
        exportedkeys 得到導出外部健信息
        get 得到數據庫元數據屬性
        importedkeys 得到導入外健信息
        indexinfo 得到數據庫表的索引和統計
        primarykeys 從數據庫表或結構得到主健信息
        procedurecolumns 得到目錄存儲程序參數和結果列
        procedures 得到目錄存儲程序
        supports 判斷是否支持數據庫元數據
        tableprivileges 得到數據庫表優先權
        tables 得到數據庫表名稱
        versioncolumns 得到自動更新表列


        Xinsoft,2004-08-11 20:28:15

        數據庫工具箱讓用戶使用MATLAB強大數據分析和可視化工具功能處理存儲在數據庫中的數據的復雜分析。在MATLAB環境下工作,可以用結構化查詢語言SQL)命令:
        讀,寫數據庫的數據
        簡單和高級條件的數據查詢
        連接MATLAB和數據庫包括Oracle,Sybase,Microsoft SQL Server和Informix。
        可以用單一MATLAB同時訪問多個數據庫,進行大數據量的事務處理。不懂SQL的用戶可以用Visual Query Builder處理數據。
        重點
        魯棒接口能力。 用ODBC/JDBC連接數據庫,包括Oracle,Sybase SQL Server,Sybase SQL Anywhere,Microsoft SQL Server, Microsoft Access,
        Informix Ingres.
        SQL語法。 在MATLAB環境直接執行SQL查詢
        動態導入數據。 調節SQL查詢,把數據導入MATLAB。數據庫工具箱滿足小的和大的查詢。

        數據類型保存。 在數據導入和導出行為MATLAB保存數據類型
        同時訪問多個數據庫。 從數據庫導入數據,對該數據執行計算,然后導入到另一個數據庫。
        處理大數據集的能力。
        連續狀態的數據庫連接:一旦和某個數據庫的連接建立后,數據庫一直是打開的,除非在MATLAB中執行關閉語句。這提高了數據庫的讀取速度,減少了不必要的命令來調入,輸出數據 Visual Query Builder. 該圖形用戶接口列數據源和所有表和字段,不懂SQL的用戶可以訪問和查詢數據庫函數列表

        數據庫訪問函數
        clearwarnings 清除數據庫連接警告
        close 關閉數據庫連接
        commit 數據庫改變參數
        database 連接數據庫
        exec 執行SQL語句和打開油標
        get 得到數據庫屬性
        insert 導出MATLAB單元數組數據到數據庫表
        isconnection 判斷數據庫連接是否有效
        isreadonly 判斷數據庫連接是否只讀
        ping 得到數據庫連接信息
        rollback 撤銷數據庫變化
        set 設置數據庫連接屬性
        sql2native 轉換JDBC SQL 語法為系統本身的SQL語法
        update 用MATLAB單元數組數據代替數據庫表的數據
        數據庫游標訪問函數
        attr 獲得的數據集的列屬性
        close 關閉游標
        cols 獲得的數據集的列數值
        columnnames 獲得的數據集的列名稱
        fetch 導入數據到MATLAB單元數組
        get 得到游標對象屬性
        querytimeout 數據庫SQL查詢成功的時間
        rows 獲取數據集的行數
        set 設置游標獲取的行限制
        width 獲取數據集的列寬
        數據庫元數據函數
        bestrowid 得到數據庫表唯一行標識
        columnprivileges 得到數據庫列優先權
        columns 得到數據庫表列名稱
        crossreference 得到主健和外健信息
        dmd 創建數據庫元數據對象
        exportedkeys 得到導出外部健信息
        get 得到數據庫元數據屬性
        importedkeys 得到導入外健信息
        indexinfo 得到數據庫表的索引和統計
        primarykeys 從數據庫表或結構得到主健信息
        procedurecolumns 得到目錄存儲程序參數和結果列
        procedures 得到目錄存儲程序
        supports 判斷是否支持數據庫元數據
        tableprivileges 得到數據庫表優先權
        tables 得到數據庫表名稱
        versioncolumns 得到自動更新表列
        MATLABER曰:
        這是個很經典的介紹,
        因為它涉及到MATLAB在金融學中的應用,甚至利用它可以作出很好的財務軟件.
        zhimingchen曰:Visual Query Builder 不支持漢字,所以我覺得使用 Visual Query Builder 不是最好的方法;使用DAO,特別ADO是一種很好方法,可以做到與數據庫無關;請看我的一個訪問數據庫的實例:
        function Table=GetTable(ConnectionStr,SqlStr)
        %ConnectionStr為連接串,比如可以設置ConnectionStr='Data Source=HistryData2.0;
        Pr
        ovider=MSDASQL;User ID=Admin;Password=;'
        %SqlStr為SQL語句,
        % 利用ADO調用數據源
        try
        MyConnection=actxserver('ADODB.Connection');
        MyConnection.ConnectionString=ConnectionStr;
        invoke(MyConnection,'Open');
        MyRecordset=invoke(MyConnection,'Execute',SqlStr);

        %域信息
        Fields=MyRecordset.Fields;
        %域個數
        FieldNumber=Fields.Count;
        FieldNames=cell(1,FieldNumber);
        %獲取數據
        % invoke(MyRecordset,'MoveFirst');
        Data=invoke(MyRecordset,'GetRows');
        MyRecordset.Source;
        %記錄行數
        RecordCount=size(Data,2);
        for i=1:size(FieldNames,2)
        TempField=get(Fields,'Item',i-1);
        FieldNames{i}=TempField.Name;
        end
        %給Table賦植
        Table.RecordCount=RecordCount;
        Table.FieldNames=FieldNames;
        Table.Data=Data;
        invoke(MyRecordset,'Close');
        invoke(MyConnection,'Close');
        catch
        msgbox(lasterr,'Tint');
        Table.Data={};
        end


        Xinsoft,2004-08-11 20:28:37

        一、通過MATLAB 提供的數據庫引擎, 以下是MATLAB ,DATABASE TOOLBOX中的例子,

        通過ODBC/JDBC 接口訪問具體的數據庫
        function dbimportdemo()
        %DBIMPORTDEMO Imports data into Matlab from a database.

        % Version 1.0 21-Oct-1997
        % Author(s): E.F. McGoldrick, 12/5/1997
        % Copyright (c) 1984-2001 The MathWorks, Inc.

        % $Revision: 1.7 $ $Date: 2001/01/12 16:22:06 $

        % Set maximum time allowed for establishing a connection.

        timeoutA=logintimeout(5)

        % Connect to a database.
        %打開數據源 SampleDB
        connA=database('SampleDB','','')

        % Check the database status.

        ping(connA)

        % Open cursor and execute SQL statement.
        %執行SQL查詢語句
        cursorA=exec(connA,'select country from customers');

        % Fetch the first 10 rows of data.
        %獲取前十行數據
        cursorA=fetch(cursorA,10)

        % Display the data.
        %顯示
        AA=cursorA.Data

        % Close the cursor and the connection.
        %關閉
        close(cursorA)
        close(connA)
        二、通過DAO訪問數據庫(DAO技術適合于訪問ACCESS 2000以下版本的數據庫,優點是功

        齊全,具體可以參考MSDN關于DAO的幫助),以下是我自己摸索出來的,在MATLAB幫助文

        中有關于如何調用EXCEL組件的方法。

        Handle=actxserver('DAO.DBEngine.36');
        MyWSS=get(Handle,'Workspaces')
        Count=get(MyWSS,'Count')
        MyWS=get(MyWSS,'Item',0)
        %打開數據庫
        MyDB=invoke(MyWS,'OpenDatabase','D:/My Documents/test.mdb')
        %打開數據庫的表,得到一個指向記錄集的指針
        MyRS=invoke(MyDB,'OpenRecordset','用戶')
        %獲取“用戶”表的前十行數據
        MyRows=invoke(MyRS,'GetRows','10')
        %關閉
        invoke(MyRS,'Close')
        invoke(MyDB,'Close')
        invoke(MyWS,'Close')

        三、ADO技術(微軟建議ACCESS 2000及以上版本的數據庫應盡量通過ADO訪問,優點是可

        通過較少的對象訪問數據庫,ADO與今后微軟的數據庫技術發展方向一致,目前支持的功

        稍微少了一些)具體訪問的可以參考MSDN的幫助文件和ADO 類型庫的方法原型。

        四、通過dde進行動態數據交換,可以查看help

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Matlab數據庫編程

        Matlab數據庫編程:有感于網上查到了大量相當有幫助的技術性文章,這里也把我前段時間實現的一個功能程序公布出來,供需者參考。 功能簡介:服務器R(remote)只負責網站的運行和訪問,每天獲得一批新的原始數據,服務器L(local)負責后臺運算,自動定時從服務器R的mysql里讀
        推薦度:
        標簽: 網上 數據 大量
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲区小说区图片区| 91在线老王精品免费播放| 国产亚洲精品91| 国产成人 亚洲欧洲| 亚洲AV噜噜一区二区三区| 亚洲精品无码日韩国产不卡av| 亚洲jizzjizz在线播放久| 国产亚洲精品VA片在线播放| 精品国产成人亚洲午夜福利| 亚洲中文字幕无码mv| 欧美日韩亚洲精品| 免费播放国产性色生活片| 亚洲免费无码在线| 免费无码又爽又刺激一高潮| 久久免费观看国产99精品| 中文字幕在线观看免费视频 | 中文字幕乱码亚洲精品一区 | 国产亚洲AV手机在线观看| 亚洲精品无码久久久久sm| 亚洲AV日韩AV高潮无码专区| 亚洲香蕉免费有线视频| 33333在线亚洲| 亚洲AV色欲色欲WWW| 一级特黄录像免费播放中文版| 老司机精品免费视频| 91av在线免费视频| 成年午夜视频免费观看视频| 午夜国产羞羞视频免费网站| 毛茸茸bbw亚洲人| 久久久久亚洲AV无码麻豆| 亚洲欧洲av综合色无码| 四虎影视久久久免费观看| 青青草原1769久久免费播放| 成年免费大片黄在线观看岛国| 又粗又硬免费毛片| 亚洲欧洲无码AV电影在线观看 | 亚洲男人的天堂一区二区| 亚洲AV永久无码精品水牛影视| 亚洲春黄在线观看| 精品久久久久久亚洲中文字幕| 四虎影视无码永久免费|