日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
探究Matlab如何與數(shù)據(jù)庫結(jié)合實現(xiàn)高效數(shù)據(jù)處理(matlab與數(shù)據(jù)庫)

隨著數(shù)據(jù)處理需求的不斷增加,越來越多的人開始關(guān)注如何使用軟件工具來更好地處理數(shù)據(jù)。Matlab是一款優(yōu)秀的數(shù)學(xué)軟件,它具有強大的計算能力和豐富的功能,能夠在數(shù)據(jù)處理中起到重要的作用。與此同時,數(shù)據(jù)庫是一種存儲和管理數(shù)據(jù)的系統(tǒng),越來越多的數(shù)據(jù)都存儲在數(shù)據(jù)庫中。那么,如何將Matlab與數(shù)據(jù)庫結(jié)合起來,實現(xiàn)高效數(shù)據(jù)處理呢?

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的眉縣網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

一、為什么需要將Matlab與數(shù)據(jù)庫結(jié)合

在處理數(shù)據(jù)過程中,我們需要從數(shù)據(jù)源中獲取數(shù)據(jù),如數(shù)據(jù)文件、數(shù)據(jù)庫等。 對于數(shù)據(jù)量大的情況,從文件直接讀取數(shù)據(jù)會非常耗時,甚至?xí)斐上到y(tǒng)崩潰。而數(shù)據(jù)庫可以通過索引快速查詢、過濾和更新數(shù)據(jù),因此在處理大數(shù)據(jù)集時,使用數(shù)據(jù)庫會提高效率。同時,Matlab可以進(jìn)行數(shù)據(jù)分析、運算和可視化等操作,所以將數(shù)據(jù)庫中的數(shù)據(jù)讀取到Matlab中,并對其進(jìn)行處理,將這兩者結(jié)合起來則是處理大數(shù)據(jù)集非常有效的途徑。

二、如何實現(xiàn)Matlab與數(shù)據(jù)庫的結(jié)合

使用Matlab可以連接各種數(shù)據(jù)庫類型,包括MySQL、Microsoft SQL Server、Oracle等。一般情況下,我們可以使用ODBC(Open Database Connectivity)來連接數(shù)據(jù)庫。該接口定義了一套通用的API,可以讓不同類型的數(shù)據(jù)庫互相通訊。Matlab也提供了可以使用ODBC連接各種數(shù)據(jù)庫的工具。

以MySQL數(shù)據(jù)庫為例,以下是實現(xiàn)Matlab與MySQL的連接方法:

1. 創(chuàng)建ODBC數(shù)據(jù)源

首先需要在Windows環(huán)境下創(chuàng)建MySQL數(shù)據(jù)庫的ODBC數(shù)據(jù)源。方法是:打開“控制面板”→“管理工具”→“ODBC數(shù)據(jù)源”→選擇“系統(tǒng)DSN”→“添加”→選擇“MySQL ODBC 5.3 ANSI Driver”或“MySQL ODBC 5.3 Unicode Driver” → 輸入數(shù)據(jù)源名稱、描述、服務(wù)器等信息后測試連接。

2. 使用ODBC連接MySQL

在Matlab中使用ODBC連接MySQL需要用到ODBC數(shù)據(jù)源,具體步驟如下:

“`matlab

db = database(‘MySQL’, ‘root’, ‘password’, ‘com.mysql.jdbc.Driver’, ‘jdbc:mysql://localhost:3306/test’,’com.mysql.jdbc.Driver’);

% ‘MySQL’表示數(shù)據(jù)庫類型, ‘root’表示用戶名,‘password’表示連接密碼,‘com.mysql.jdbc.Driver’是MySQL的JDBC驅(qū)動,‘jdbc:mysql://localhost:3306/test’表示要連接到的MySQL數(shù)據(jù)庫Server。

“`

3. 連接MySQL數(shù)據(jù)庫

“`matlab

conn = database(‘test’, ‘root’, ‘password’, ‘com.mysql.jdbc.Driver’, ‘jdbc:mysql://localhost:3306/test’,’com.mysql.jdbc.Driver’);

% ‘test’為我們的數(shù)據(jù)庫名。

“`

連接后,我們可以運行任何標(biāo)準(zhǔn)SQL查詢語句,以獲得所需的數(shù)據(jù)。在Matlab中,使用“exec”的方法執(zhí)行SQL語句。Matlab將返回包含查詢結(jié)果的數(shù)據(jù)集對象。

“`matlab

selectQuery = ‘SELECT * FROM table_name’;

results = fetch(exec(conn, selectQuery));

“`

三、Matlab如何高效處理數(shù)據(jù)庫數(shù)據(jù)

在連接數(shù)據(jù)庫后,我們可以通過將數(shù)據(jù)庫查詢獲得的數(shù)據(jù)導(dǎo)入到Matlab中,然后對其進(jìn)行分析、處理和可視化操作。

我們可以使用“fetch”的方法將結(jié)果導(dǎo)入到一個MATLAB數(shù)據(jù)結(jié)構(gòu)中,如下所示:

“`matlab

results = fetch(selectStmt)

“`

這將返回一個MATLAB內(nèi)部數(shù)據(jù)類型的結(jié)果集,可以直接進(jìn)行處理和分析。此外,對于大型數(shù)據(jù)集,我們可以選擇逐塊讀取數(shù)據(jù),以減少內(nèi)存消耗和加快程序的運行速度。例如,可以使用以下代碼將結(jié)果逐塊輸出:

“`matlab

warning off;

fetchSize = 1000;

setdbprefs(‘DataReturnFormat’,’table’);

localSelect = [selectStmt,’ LIMIT’];

count = fetch(exec(conn, [‘select count(*) from (‘ selectStmt ‘) tempTable’]));

count = count.Data{1};

localResultSet = cell(1, ceil(count/fetchSize));

tic;

for ii = 1:length(localResultSet)

results = fetch(exec(conn, [localSelect ‘ ‘ num2str((ii-1)*fetchSize) ‘, ‘ num2str(fetchSize)]));

% 將查詢結(jié)果轉(zhuǎn)為數(shù)組,執(zhí)行自定義函數(shù)

localResultSet{ii} = table2array(results);

end

disp([‘Query Runs in’,num2str(toc),’Seconds’]);

% 將每個區(qū)塊結(jié)果拼接成完整的查詢結(jié)果

totalResultSet = cat(1, localResultSet{:});

“`

Matlab提供了強大的功能和API,可以與各種類型的數(shù)據(jù)庫進(jìn)行連接,從而靈活地處理數(shù)據(jù)。借助Matlab的分析和處理能力,我們可以更高效、方便地獲取和處理大量數(shù)據(jù),從而為科學(xué)研究和工程設(shè)計提供了有價值的支持。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220

Matlab和Mysql數(shù)據(jù)連接問題。

有感于網(wǎng)上查到了大量相當(dāng)有幫助的技術(shù)性文章,這里也把我前段時間實現(xiàn)的一個功能程序公布出來,供需者參考。

功能簡介:服務(wù)器R(remote)只負(fù)責(zé)網(wǎng)站的運行和訪問,每天獲得一批新的原始數(shù)據(jù),服務(wù)器L(local)負(fù)責(zé)后臺運算,自動定時從服務(wù)器R的mysql里讀取數(shù)據(jù),在L上經(jīng)過matlab編寫的算法程序運算后再遠(yuǎn)程將結(jié)果寫回R的數(shù)據(jù)庫以實現(xiàn)網(wǎng)站的更新。全程無人值守。(L負(fù)責(zé)后臺運算,安裝matlab;R負(fù)責(zé)網(wǎng)絡(luò)訪問,安裝mysql)

不同于網(wǎng)絡(luò)上查到的實現(xiàn)方法,本程序全部在m文件里編寫,不用php 或c++做接口,宗旨就是用簡單的方法實現(xiàn)簡單的想法。(以下假定suanfa.m子程序已經(jīng)存在)

1.編寫import_data.m子程序,實現(xiàn)從mysql讀取數(shù)據(jù)到matlab中.

1)下載mysql的jdbc的java驅(qū)動,安裝到*:\Program Files\MATLAB71\java\jar\toolbox路徑下;

2)此“路徑\文件名”添到*:\Program Files\MATLAB71\toolbox\local下的classpath.txt文件中;

3)設(shè)置mysql下的數(shù)據(jù)庫名稱為帶有“mysql ”后綴的,比如:abcmysql;

4)服務(wù)器R的mysql下,輸入“grant all on *.* to username@”L的IP” Identified by

“password”,允許L遠(yuǎn)程訪問;

5)復(fù)制如下代碼到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,數(shù)據(jù)庫名稱abc,tablename,sql語句都是要依實際修改的。

2.編寫export_data.m子程序,實現(xiàn)從matlab寫回數(shù)據(jù)到mysql中:

原理類似, (tablename2的表要事先建好u)復(fù)制以下程序:

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 = ;%updating

fastinsert(connA, ‘tablename2’, Colnames,newdata);

close(cursorA) ;

close(connA);

其中username,password,R的IP,數(shù)據(jù)庫名稱abc,tablename,sql語句都是要以實際情況修改的,

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

3.編寫主程序以調(diào)用這些子程序:

4.編譯m程序為exe程序:

(注意主程序頭部的也要加“function”呦,否則作為腳本文件不能編譯)

1)在matlab環(huán)境中配置編譯器,輸入mbuild -setup,依提示操作;

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

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

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

Database Toolbox 2

和關(guān)系數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換

Database 工具箱可以使你使用MATLAB 的數(shù)據(jù)分析

和可視化工具對存儲在數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分析。在

MATLAB 工作環(huán)境中, 您可以使用結(jié)構(gòu)化查詢語言進(jìn)

行:

■ 對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行讀寫

■ 使用約束條件對數(shù)據(jù)庫進(jìn)行操作

您可以在MATLAB 中和絕大多數(shù)的數(shù)據(jù)庫進(jìn)行交

互, 包括Oracle、Sybase、Microsoft SQL Server、

MySQL、PostgreSQL 以及Microsoft Access 。該工具箱

還允許您在單個的MATLAB 任務(wù)中同時存取多個數(shù)據(jù)

庫并且支持事務(wù)特性。它包含了Visual Query Builder

( 可視化查詢工具), 它可以使您在不熟悉SQL 的情

況下和數(shù)據(jù)庫進(jìn)行交互。

Visual Query Builder

可以快速對您的數(shù)據(jù)

進(jìn)行存取和圖表顯示

關(guān)鍵特性

■ 支持ODBC/JDBC 連接的數(shù)據(jù)庫接口

包括Oracle、Sybase、Microsoft SQL

Server、MySQL、PostgreSQL 以及

Microsoft Access

■ 從MATLAB 中直接執(zhí)行查詢語句

■ 對于大數(shù)據(jù)量查詢, 將增量獲取數(shù)據(jù)

■ 在所有的數(shù)據(jù)導(dǎo)入和導(dǎo)出的過程中,

保留數(shù)據(jù)類型

■ 單個的MATLAB 任務(wù)中可以同時

存取多個數(shù)據(jù)庫

■ 從一個數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù),完成計

算后, 將結(jié)果輸出到另外一個數(shù)據(jù)庫

■ 在單個事務(wù)中獲取大數(shù)據(jù)集, 或者分

割數(shù)據(jù), 通過多個事務(wù)來完成

■ 通過在一個MATLAB 會話中保持?jǐn)?shù)

據(jù)庫連接來減少需要進(jìn)行輸入和輸出

數(shù)據(jù)所需要的語句, 除非數(shù)據(jù)庫連接

被顯式關(guān)閉

■ 它可以使您在不熟悉SQL 的情況下

和數(shù)據(jù)庫進(jìn)行交互

在MATLAB 中對Microsoft Access 數(shù)據(jù)庫進(jìn)行查詢

數(shù)據(jù)庫工具箱函數(shù)列表

數(shù)據(jù)庫訪問函數(shù)

clearwarnings 清除數(shù)據(jù)庫連接警告

close 關(guān)閉數(shù)據(jù)庫連接

commit 數(shù)據(jù)庫改變參數(shù)

database 連接數(shù)據(jù)庫

exec 執(zhí)行SQL語句和打開油標(biāo)

get 得到數(shù)據(jù)庫屬性

insert 導(dǎo)出MATLAB單元數(shù)組數(shù)據(jù)到數(shù)據(jù)庫表

isconnection 判斷數(shù)據(jù)庫連接是否有效

isreadonly 判斷數(shù)據(jù)庫連接是否只讀

ping 得到數(shù)據(jù)庫連接信息

rollback 撤銷數(shù)據(jù)庫變化

set 設(shè)置數(shù)據(jù)庫連接屬性

sql2native 轉(zhuǎn)換JDBC SQL 語法為系統(tǒng)本身的SQL語法

update 用MATLAB單元數(shù)組數(shù)據(jù)代替數(shù)據(jù)庫表的數(shù)據(jù)

數(shù)據(jù)庫游標(biāo)訪問函數(shù)

attr 獲得的數(shù)據(jù)集的列屬性

close 關(guān)閉游標(biāo)

cols 獲得的數(shù)據(jù)集的列數(shù)值

columnnames 獲得的數(shù)據(jù)集的列名稱

fetch 導(dǎo)入數(shù)據(jù)到MATLAB單元數(shù)組

get 得到游標(biāo)對象屬性

querytimeout 數(shù)據(jù)庫SQL查詢成功的時間

rows 獲取數(shù)據(jù)集的行數(shù)

set 設(shè)置游標(biāo)獲取的行限制

width 獲取數(shù)據(jù)集的列寬

數(shù)據(jù)庫元數(shù)據(jù)函數(shù)

bestrowid 得到數(shù)據(jù)庫表唯一行標(biāo)識

columnprivileges 得到數(shù)據(jù)庫列優(yōu)先權(quán)

columns 得到數(shù)據(jù)庫表列名稱

crossreference 得到主健和外健信息

dmd 創(chuàng)建數(shù)據(jù)庫元數(shù)據(jù)對象

exportedkeys 得到導(dǎo)出外部健信息

get 得到數(shù)據(jù)庫元數(shù)據(jù)屬性

importedkeys 得到導(dǎo)入外健信息

indexinfo 得到數(shù)據(jù)庫表的索引和統(tǒng)計

primarykeys 從數(shù)據(jù)庫表或結(jié)構(gòu)得到主健信息

procedurecolumns 得到目錄存儲程序參數(shù)和結(jié)果列

procedures 得到目錄存儲程序

supports 判斷是否支持?jǐn)?shù)據(jù)庫元數(shù)據(jù)

tableprivileges 得到數(shù)據(jù)庫表優(yōu)先權(quán)

tables 得到數(shù)據(jù)庫表名稱

versioncolumns 得到自動更新表列

Xinsoft,:28:15

數(shù)據(jù)庫工具箱讓用戶使用MATLAB強大數(shù)據(jù)分析和可視化工具功能處理存儲在數(shù)據(jù)庫中的數(shù)據(jù)的復(fù)雜分析。在MATLAB環(huán)境下工作,可以用結(jié)構(gòu)化查詢語言SQL)命令:

讀,寫數(shù)據(jù)庫的數(shù)據(jù)

簡單和高級條件的數(shù)據(jù)查詢

連接MATLAB和數(shù)據(jù)庫包括Oracle,Sybase,Microsoft SQL Server和Informix。

可以用單一MATLAB同時訪問多個數(shù)據(jù)庫,進(jìn)行大數(shù)據(jù)量的事務(wù)處理。不懂SQL的用戶可以用Visual Query Builder處理數(shù)據(jù)。

重點

魯棒接口能力。 用ODBC/JDBC連接數(shù)據(jù)庫,包括Oracle,Sybase SQL Server,Sybase SQL Anywhere,Microsoft SQL Server, Microsoft Access,

Informix Ingres.

SQL語法。 在MATLAB環(huán)境直接執(zhí)行SQL查詢

動態(tài)導(dǎo)入數(shù)據(jù)。 調(diào)節(jié)SQL查詢,把數(shù)據(jù)導(dǎo)入MATLAB。數(shù)據(jù)庫工具箱滿足小的和大的查詢。

數(shù)據(jù)類型保存。 在數(shù)據(jù)導(dǎo)入和導(dǎo)出行為MATLAB保存數(shù)據(jù)類型

同時訪問多個數(shù)據(jù)庫。 從數(shù)據(jù)庫導(dǎo)入數(shù)據(jù),對該數(shù)據(jù)執(zhí)行計算,然后導(dǎo)入到另一個數(shù)據(jù)庫。

處理大數(shù)據(jù)集的能力。

連續(xù)狀態(tài)的數(shù)據(jù)庫連接:一旦和某個數(shù)據(jù)庫的連接建立后,數(shù)據(jù)庫一直是打開的,除非在MATLAB中執(zhí)行關(guān)閉語句。這提高了數(shù)據(jù)庫的讀取速度,減少了不必要的命令來調(diào)入,輸出數(shù)據(jù) Visual Query Builder. 該圖形用戶接口列數(shù)據(jù)源和所有表和字段,不懂SQL的用戶可以訪問和查詢數(shù)據(jù)庫函數(shù)列表

數(shù)據(jù)庫訪問函數(shù)

clearwarnings 清除數(shù)據(jù)庫連接警告

close 關(guān)閉數(shù)據(jù)庫連接

commit 數(shù)據(jù)庫改變參數(shù)

database 連接數(shù)據(jù)庫

exec 執(zhí)行SQL語句和打開油標(biāo)

get 得到數(shù)據(jù)庫屬性

insert 導(dǎo)出MATLAB單元數(shù)組數(shù)據(jù)到數(shù)據(jù)庫表

isconnection 判斷數(shù)據(jù)庫連接是否有效

isreadonly 判斷數(shù)據(jù)庫連接是否只讀

ping 得到數(shù)據(jù)庫連接信息

rollback 撤銷數(shù)據(jù)庫變化

set 設(shè)置數(shù)據(jù)庫連接屬性

sql2native 轉(zhuǎn)換JDBC SQL 語法為系統(tǒng)本身的SQL語法

update 用MATLAB單元數(shù)組數(shù)據(jù)代替數(shù)據(jù)庫表的數(shù)據(jù)

數(shù)據(jù)庫游標(biāo)訪問函數(shù)

attr 獲得的數(shù)據(jù)集的列屬性

close 關(guān)閉游標(biāo)

cols 獲得的數(shù)據(jù)集的列數(shù)值

columnnames 獲得的數(shù)據(jù)集的列名稱

fetch 導(dǎo)入數(shù)據(jù)到MATLAB單元數(shù)組

get 得到游標(biāo)對象屬性

querytimeout 數(shù)據(jù)庫SQL查詢成功的時間

rows 獲取數(shù)據(jù)集的行數(shù)

set 設(shè)置游標(biāo)獲取的行限制

width 獲取數(shù)據(jù)集的列寬

數(shù)據(jù)庫元數(shù)據(jù)函數(shù)

bestrowid 得到數(shù)據(jù)庫表唯一行標(biāo)識

columnprivileges 得到數(shù)據(jù)庫列優(yōu)先權(quán)

columns 得到數(shù)據(jù)庫表列名稱

crossreference 得到主健和外健信息

dmd 創(chuàng)建數(shù)據(jù)庫元數(shù)據(jù)對象

exportedkeys 得到導(dǎo)出外部健信息

get 得到數(shù)據(jù)庫元數(shù)據(jù)屬性

importedkeys 得到導(dǎo)入外健信息

indexinfo 得到數(shù)據(jù)庫表的索引和統(tǒng)計

primarykeys 從數(shù)據(jù)庫表或結(jié)構(gòu)得到主健信息

procedurecolumns 得到目錄存儲程序參數(shù)和結(jié)果列

procedures 得到目錄存儲程序

supports 判斷是否支持?jǐn)?shù)據(jù)庫元數(shù)據(jù)

tableprivileges 得到數(shù)據(jù)庫表優(yōu)先權(quán)

tables 得到數(shù)據(jù)庫表名稱

versioncolumns 得到自動更新表列

MATLABER曰:

這是個很經(jīng)典的介紹,

因為它涉及到MATLAB在金融學(xué)中的應(yīng)用,甚至利用它可以作出很好的財務(wù)軟件.

zhimingchen曰:Visual Query Builder 不支持漢字,所以我覺得使用 Visual Query Builder 不是更好的方法;使用DAO,特別ADO是一種很好方法,可以做到與數(shù)據(jù)庫無關(guān);請看我的一個訪問數(shù)據(jù)庫的實例:

function Table=GetTable(ConnectionStr,SqlStr)

%ConnectionStr為連接串,比如可以設(shè)置ConnectionStr=’Data Source=HistryData2.0;

Pr

ovider=MSDASQL;User ID=Admin;Password=;’

%SqlStr為SQL語句,

% 利用ADO調(diào)用數(shù)據(jù)源

try

MyConnection=actxserver(‘ADODB.Connection’);

MyConnection.ConnectionString=ConnectionStr;

invoke(MyConnection,’Open’);

MyRecordset=invoke(MyConnection,’Execute’,SqlStr);

%域信息

Fields=MyRecordset.Fields;

%域個數(shù)

FieldNumber=Fields.Count;

FieldNames=cell(1,FieldNumber);

%獲取數(shù)據(jù)

% invoke(MyRecordset,’MoveFirst’);

Data=invoke(MyRecordset,’GetRows’);

MyRecordset.Source;

%記錄行數(shù)

RecordCount=size(Data,2);

for i=1:size(FieldNames,2)

TempField=get(Fields,’Item’,i-1);

FieldNames=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,:28:37

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

通過ODBC/JDBC 接口訪問具體的數(shù)據(jù)庫

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)The MathWorks, Inc.

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

% Set maximum time allowed for establishing a connection.

timeoutA=logintimeout(5)

% Connect to a database.

%打開數(shù)據(jù)源 SampleDB

connA=database(‘SampleDB’,”,”)

% Check the database status.

ping(connA)

% Open cursor and execute SQL statement.

%執(zhí)行SQL查詢語句

cursorA=exec(connA,’select country from customers’);

% Fetch the first 10 rows of data.

%獲取前十行數(shù)據(jù)

cursorA=fetch(cursorA,10)

% Display the data.

%顯示

AA=cursorA.Data

% Close the cursor and the connection.

%關(guān)閉

close(cursorA)

close(connA)

二、通過DAO訪問數(shù)據(jù)庫(DAO技術(shù)適合于訪問ACCESS 2023以下版本的數(shù)據(jù)庫,優(yōu)點是功

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

中有關(guān)于如何調(diào)用EXCEL組件的方法。

Handle=actxserver(‘DAO.DBEngine.36’);

MyWSS=get(Handle,’Workspaces’)

Count=get(MyWSS,’Count’)

MyWS=get(MyWSS,’Item’,0)

%打開數(shù)據(jù)庫

MyDB=invoke(MyWS,’OpenDatabase’,’D:\My Documents\test.mdb’)

%打開數(shù)據(jù)庫的表,得到一個指向記錄集的指針

MyRS=invoke(MyDB,’OpenRecordset’,’用戶’)

%獲取“用戶”表的前十行數(shù)據(jù)

MyRows=invoke(MyRS,’GetRows’,’10’)

%關(guān)閉

invoke(MyRS,’Close’)

invoke(MyDB,’Close’)

invoke(MyWS,’Close’)

三、ADO技術(shù)(微軟建議ACCESS 2023及以上版本的數(shù)據(jù)庫應(yīng)盡量通過ADO訪問,優(yōu)點是可

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

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

四、通過dde進(jìn)行動態(tài)數(shù)據(jù)交換,可以查看help

這是我?guī)湍阏襾淼?。不知道對不對。找了很久的?/p>

首先要安裝mysql驅(qū)動程序包

Step 1: 將mysql-connector-java-5.1.7-bin.jar文件拷貝到……\MATLAB\R2023a\java\jar\toolbox

Step 2: 到……\MATLAB\R2023a\toolbox\local目錄下,找到classpath.txt文件,打開,并添加用來加載mysql的jdbc驅(qū)動語句:

$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar

Step 3:重新打開MATLAB即可

驅(qū)動程序安裝成功后,接來下要是matlab連接mysql數(shù)據(jù)庫的代碼:

conn =database(‘databasename’,’username’,’password’,’driver’,’databaseurl’)

連接成功后,返回連接對象。

參數(shù)如下:

*databasename: 數(shù)據(jù)庫名稱.

*driver: JDBC driver.

*username and password: 用戶名和密碼.

*databaseurl: 類似于jdbc:subprotocol:subname. subprotocol 是數(shù)據(jù)庫類型,

subname 類似于//hostname:port/databasename.

如果matlab和數(shù)據(jù)庫建立了連接,將返回類似于如下信息:

Instance: ‘SampleDB’

UserName: ”

Driver:

URL:

Constructor:

Message:

Handle:

TimeOut: 0

AutoCommit: ‘off’

Type: ‘Database Object’

連接mysql的代碼如下:

conn = database(’tissueppi’,’root’,’root’,’com.mysql.jdbc.Driver’,’jdbc:

連接成功后,就可以用exec函數(shù)執(zhí)行sql語句

exec函數(shù)執(zhí)行sql語句并返回一個開指針

語法如下:

curs = exec(conn,’sqlquery’)

例如:curs = exec(conn, ‘select * from customers’)

執(zhí)行完查詢后,還要將查詢結(jié)果從開放cursor對象導(dǎo)入到對象curs中,該功能是用

cursor.fetch函數(shù)實現(xiàn)的。

語法如下:

curs = fetch(curs)

使用curs.Data來顯示數(shù)據(jù),curs.Data返回一個CELL結(jié)構(gòu),可以先把CELL結(jié)構(gòu)轉(zhuǎn)換成

MATRIX結(jié)構(gòu)再取值:

cur =cell2mat(cur)

a=cur(1,1);

則查詢結(jié)果就加到了向量a中

注意:

在exec函數(shù)執(zhí)行查詢過程中,有的sql語句要輸入變量,這時可使用strcat函數(shù)完成該

功能。

t = strcat(s1, s2, s3, …)

for(t=1:10)

sql1 = strcat(‘select count(did) from rss_genepairs_u where gocc>=’,num2str(t),’ || gomf >= ‘,num2str(t),’ || gobp >= ‘,num2str(t));

end

完整代碼如下:

conn = database(’tissueppi’,’root’,’root’,’com.mysql.jdbc.Driver’,’jdbc:

for t=0.5:0.01:0.91

for x=0.5:0.1:11

sql = strcat(‘select count(did) from rss_genepairs_x2 where score =’,num2str(t),’ || gomf >= ‘,num2str(t),’ || gobp >= ‘,num2str(t),’)’);

aTemp = exec(conn,sql);

aTemp = fetch(aTemp);

a = aTemp.Data;

a = cell2mat(a);

a= a(1,1);

end

end

matlab 與數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于matlab 與數(shù)據(jù)庫,探究Matlab如何與數(shù)據(jù)庫結(jié)合實現(xiàn)高效數(shù)據(jù)處理,Matlab和Mysql數(shù)據(jù)連接問題。的信息別忘了在本站進(jìn)行查找喔。

成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。


網(wǎng)站欄目:探究Matlab如何與數(shù)據(jù)庫結(jié)合實現(xiàn)高效數(shù)據(jù)處理(matlab與數(shù)據(jù)庫)
網(wǎng)站鏈接:http://www.dlmjj.cn/article/dhohcps.html