⑴ matlab怎麼連接資料庫
一、使用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
⑵ 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
⑶ 如何將SQL資料庫中的mat文件導入到matlab
您好
設cell數據為data,用一個循環就可以睜桐虛了: for i=1:length(data), eval(sprintf('悉燃a%i=data{%i};',i,i)); end
僅供參考輪轎~
⑷ matlab連接sql server
conn = database('MySQL','username','pwd'舉搏);
Check the status of the '晌答慧AutoCommit'宴答 propertyfor the database connection conn.
v = get(conn,'AutoCommit')v =
on
Close the connection.
close(conn);
⑸ 用MATLAB程序代碼執行輸出數據或將其轉換為T-SQL語句
計算雙色球選所有數字的全組合(紅球)
--ssq all data
--耗時約5分鍾左右
create table ssq(r1 int,r2 int,r3 int,r4 int,r5 int,r6 int,b1 int,qh int)
go
SET NOCOUNT ON
declare @i int,@j int,@k int,@l int,@m int,@n int,@c int
set @i=1
set @c=0 --count
while @i<=28
begin
set @j=@i+1
while @j<=29
begin
set @k=@j+1
while @k<=30
begin
set @l=@k+1
while @l<=31
begin
set @m=@l+1
while @m<=32
begin
set @n=@m+1
while @n<=33
begin
set @c=@c+1
insert into ssq values(@i,@j,@k,@l,@m,@n,0,0)
set @n=@n+1
end
set @m=@m+1
end
set @l=@l+1
end
set @k=@k+1
end
set @j=@j+1
end
set @i=@i+1
end
SET NOCOUNT OFF
print @c
⑹ matlab2012b怎麼連接sql server資料庫
一、為什麼要用JDBC連接
首先,Matlab是通過Java寫的,自身處理JDBC方式更加迅速;其次ODBC方式連接Sqlserver最終也是轉換為JDBC方式。
二、連接工具准備
下載地址,現在最新版本為4.0,下載壓縮包即可。
下載後解壓取其中的sqljdbc4.jar和sqljdbc.jar
設置matlab的啟動載入項,打開C:\Program Files\MATLAB\R2012a\toolbox\local\classpath.txt,在文件的最後添加剛才的jar文件,例如:F:/matlab/JDBCDriver/sqljdbc4.jar(注意這里需要用"/")
重新啟動matlab,若不報錯則認為載入驅動成功
2、配置資料庫允許遠程連接,開啟系統1433埠
三、連接步驟
1、設置連接字元串
假設此處使用的是本地資料庫則SQL Server地址是 127.0.0.1,埠是1433,資料庫名稱是DB,用戶名是user,密碼是pwd,那麼用下面的語句建立一個到該資料庫的連接:
conn=database('DB','user','pwd','com.microsoft.sqlserver.jdbc.SQLServerDriver','jdbc:sqlserver://127.0.0.1:1433;databaseName=DB');
2、驗證是否連接到資料庫
isconnection(conn);%若返回1則認為連接成功。
3、對數據的具體操作
包括增刪改查
curs3=exec(conn,'exec CL');%連接資料庫,執行存儲過程CL
獲取查詢到的數據:
curs=fetch(a);
b=curs.data;%獲取數據表e的數據
4、關閉資料庫連接
close(conn);
1、Sqlserver JDBC驅動
a=exec(conn,'select * from table ');%查詢,修改,刪除,增加操作