matlab與資料庫編程
A. matlab和資料庫哪個更難學習
參考這個博客:Data Mining in MATLAB
博主的使用Matlab理由:I am a data miner with more years of experience than I care to remember. I've worked in a variety of fields and used a wide array of tools, but MATLAB is my tool of choice.
作者:芷菡
鏈接:https://www.hu.com/question/22395650/answer/49164809
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
B. matlab如何連接access資料庫
一、使用Windows系統自帶的數據源工具創建基於Access的資料庫。具體步驟是:控制面板--》管理工具--》數據源(ODBC)---》用戶DSN--》添加。創建數據源SampleDB。
二、在Matlab中連接ODBC數據源:可以使用database工具箱或者代碼編程的方式,下面介紹編程的方式
1、連接資料庫:
conn=database( 'SampleDB' , '' , '' )
2、測試資料庫是否連接成功
ping(conn)
3、打開游標,並把執行sql語句
cursor = exec(conn,'select * from PeopleInfo')
4、讀取數據,可以從游標中讀取,也可直接讀取
result=fetch(cursor)
5、關閉游標和鏈接
close(cursor)
close(conn)
備註:上面是採用cursor.fetch的方式,也可採用database.fetch的方式
conn=database(...)
result=fetch(conn, sqlquery)
而cursor.fetch 的編碼方式是:
conn=database(...)
curs=exec(conn, sqlquery)
curs=fetch(curs)
result = curs.Data
C. matlab怎樣連接mysql資料庫
首先要安裝mysql驅動程序包
Step 1: 將mysql-connector-java-5.1.7-bin.jar文件拷貝到......\MATLAB\R2009a\java\jar\toolbox
Step 2: 到......\MATLAB\R2009a\toolbox\local目錄下,找到classpath.txt文件,打開,並添加用來載入mysql的jdbc驅動語句:
$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar
Step 3:重新打開MATLAB即可
驅動程序安裝成功後,接來下要是matlab連接mysql資料庫的代碼:
conn =database('databasename','username','password','driver','databaseurl')
連接成功後,返回連接對象。
參數如下:
*databasename: 資料庫名稱.
*driver: JDBC driver.
*username and password: 用戶名和密碼.
*databaseurl: 類似於jdbc:subprotocol:subname. subprotocol 是資料庫類型,
subname 類似於//hostname:port/databasename.
如果matlab和資料庫建立了連接,將返回類似於如下信息:
Instance: 'SampleDB'
UserName: ''
Driver: []
URL: []
Constructor: [1x1 com.mathworks.toolbox.database.databaseConnect]
Message: []
Handle: [1x1 sun.jdbc.odbc.JdbcOdbcConnection]
TimeOut: 0
AutoCommit: 'off'
Type: 'Database Object'
連接mysql的代碼如下:
conn = database('tissueppi','root','root','com.mysql.jdbc.Driver','jdbc:mysql://localhost:3306/tissueppi');
連接成功後,就可以用exec函數執行sql語句
exec函數執行sql語句並返回一個開指針
語法如下:
curs = exec(conn,'sqlquery')
例如:curs = exec(conn, 'select * from customers')
執行完查詢後,還要將查詢結果從開放cursor對象導入到對象curs中,該功能是用
cursor.fetch函數實現的。
語法如下:
curs = fetch(curs)
使用curs.Data來顯示數據,curs.Data返回一個CELL結構,可以先把CELL結構轉換成
MATRIX結構再取值:
cur =cell2mat(cur)
a=cur(1,1);
則查詢結果就加到了向量a中
注意:
在exec函數執行查詢過程中,有的sql語句要輸入變數,這時可使用strcat函數完成該
功能。
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:mysql://localhost:3306/tissueppi');
for t=0.5:0.01:0.91
for x=0.5:0.1:11
sql = strcat('select count(did) f
D. matlab連接資料庫的問題
首先要安裝mysql驅動程序包
Step 1: 將mysql-connector-java-5.1.7-bin.jar文件拷貝到......\MATLAB\R2009a\java\jar\toolbox
Step 2: 到......\MATLAB\R2009a\toolbox\local目錄下,找到classpath.txt文件,打開,並添加用來載入mysql的jdbc驅動語句:
$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar
Step 3:重新打開MATLAB即可
驅動程序安裝成功後,接來下要是matlab連接mysql資料庫的代碼:
conn =database('databasename','username','password','driver','databaseurl')
連接成功後,返回連接對象。
參數如下:
*databasename: 資料庫名稱.
*driver: JDBC driver.
*username and password: 用戶名和密碼.
*databaseurl: 類似於jdbc:subprotocol:subname. subprotocol 是資料庫類型,
subname 類似於//hostname:port/databasename.
如果matlab和資料庫建立了連接,將返回類似於如下信息:
Instance: 'SampleDB'
UserName: ''
Driver: []
URL: []
Constructor: [1x1 com.mathworks.toolbox.database.databaseConnect]
Message: []
Handle: [1x1 sun.jdbc.odbc.JdbcOdbcConnection]
TimeOut: 0
AutoCommit: 'off'
Type: 'Database Object'
連接mysql的代碼如下:
conn = database('tissueppi','root','root','com.mysql.jdbc.Driver','jdbc:mysql://localhost:3306/tissueppi');
連接成功後,就可以用exec函數執行sql語句
exec函數執行sql語句並返回一個開指針
語法如下:
curs = exec(conn,'sqlquery')
例如:curs = exec(conn, 'select * from customers')
執行完查詢後,還要將查詢結果從開放cursor對象導入到對象curs中,該功能是用
cursor.fetch函數實現的。
語法如下:
curs = fetch(curs)
使用curs.Data來顯示數據,curs.Data返回一個CELL結構,可以先把CELL結構轉換成
MATRIX結構再取值:
cur =cell2mat(cur)
a=cur(1,1);
則查詢結果就加到了向量a中
注意:
在exec函數執行查詢過程中,有的sql語句要輸入變數,這時可使用strcat函數完成該
功能。
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:mysql://localhost:3306/tissueppi');
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(x),' and did in(select did from rss_genepairs_u where gocc >=',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
E. 如何在matlab中實現與資料庫的連接
1要使用連接access資料庫,首先需要配置ODBC數據源,方法是:1.在命令行中輸入odbcad32,打開odbc資源管理器
2.選擇用戶 DSN(user DSN),添加
3.在彈出的創建新用戶數據源中選擇Microsoft Access Driver(*.mdb),點擊確認
4.在彈出的新對話框中輸入數據源名和描述,數據源名很重要在後面的連接中要用到
5.輸完數據源名和描述後,選擇數據源,找到你用access創建的資料庫名稱以mdb結束的文件,點擊確認即可
F. 談談資料庫編程語言和其他編程語言的區別
1。 C++ 主要是 編程(就是通常大家所認為的coding),和 C & Java & Pascal……是同一類東西; 而 matlab 主要是 數據處理(通過編程解決問題,但如果一個人在編matlab,我們通常不會說他在 編程,那會被人誤解是在編 C++ 之類的)。
2。 正如樓所說,matlab是由C++編的,但其實這兩者已無其他相通之處。也許你會說學過C++學matlab會好學,但其實是只要學過 編程語言的,一般學其他語言都比較容易入手(相對性的說),那隻是思想上的相通(當然語言有一些相同之處,但本人覺得思想作用更是突出。
。。)總之你學 matlab or C++,那你也就學了一種編程思想,這東西是內在的、持久的,我覺得也是最重要的,一種語言不可能打天下,但有了這種思想,入手其他語言就很容易了,這也是為什麼程序員都會很多種語言!
G. Matlab 資料庫編程 update用法
A. 使用簡單的 UPDATE
下列示例說明如果從 UPDATE 語句中去除 WHERE 子句,所有的行會受到什麼影響。
下面這個例子說明,如果表 publishers 中的所有出版社將總部搬遷到喬治亞州的亞特蘭大市,表 publishers 如何更新。
UPDATE publishers
SET city = 'Atlanta', state = 'GA'
本示例將所有出版商的名字變為 NULL。
UPDATE publishers
SET pub_name = NULL
也可以在更新中使用計算值。本示例將表 titles 中的所有價格加倍。
UPDATE titles
SET price = price * 2
B.把 WHERE 子句和 UPDATE 語句一起使用
WHERE 子句指定要更新的行例如,在下面這個虛構的事件中,北加利福尼亞更名為 Pacifica(縮寫為 PC),而奧克蘭的市民投票決定將其城市的名字改為 Bay City。這個例子說明如何為奧克蘭市以前的所有居民(他們的地址已經過時)更新表 authors。
UPDATE authors
SET state = 'PC', city = 'Bay City'
WHERE state = 'CA' AND city = 'Oakland'
必須編寫另一個語句來更改北加利福尼亞其它城市的居民所在的州名。
C.通過 UPDATE 語句使用來自另一個表的信息
本示例修改表 titles 中的 ytd_sales 列,以反映表 sales 中的最新銷售記錄。
UPDATE titles
SET ytd_sales = titles.ytd_sales + sales.qty
FROM titles, sales
WHERE titles.title_id = sales.title_id
AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
這個例子假定,一種特定的商品在特定的日期只記錄一批銷售量,而且更新是最新的。如果不是這樣(即如果一種特定的商品在同一天可以記錄不止一批銷售量),這里所示的例子將出錯。例子可正確執行,但是每種商品只用一批銷售量進行更新,而不管那一天實際銷售了多少批。這是因為一個 UPDATE 語句從不會對同一行更新兩次。
對於特定的商品在同一天可銷售不止一批的情況,每種商品的所有銷售量必須在 UPDATE 語句中合計在一起,如下例所示:
UPDATE titles
SET ytd_sales =
(SELECT SUM(qty)
FROM sales
WHERE sales.title_id = titles.title_id
AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
FROM titles, sales
D. 將 UPDATE 語句與 SELECT 語句中的 TOP 子句一起使用
這個例子對來自表 authors 的前十個作者的 state 列進行更新。
UPDATE authors
SET state = 'ZZ'
FROM (SELECT TOP 10 * FROM authors ORDER BY au_lname) AS t1
WHERE authors.au_id = t1.au_id
H. Matlab 與資料庫,我想問一下,matlab在讀取寫入時是使用matlab的編程語言還是用的數
具體情況不太清楚。但我知道Matlab的xlswrite()函數寫一個數據到Excel表格的某個單元。