日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

matlab 与数据库操作

發(fā)布時間:2023/12/2 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab 与数据库操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一部分:讀取數(shù)據(jù)其相關(guān)信息查看

1.??????配置數(shù)據(jù)源

(1).“控制面板”----“管理工具”——“數(shù)據(jù)源(ODBC)”——“添加”——“創(chuàng)建數(shù)據(jù)源名稱和選擇數(shù)據(jù)庫文件”。具體操作見數(shù)據(jù)源配置:?http://blog.csdn.net/xiaotianlan/article/details/50372414 ??


2.??????建立鏈接對象——database

調(diào)用格式:

conna=database(‘datasourcename’,’username’,’password’);

如conna=database('DCE','root','111111');其中DCE為上文中創(chuàng)建的數(shù)據(jù)源名稱,用戶名:root 密碼:111111

3.??????建立并打開游標——exec

調(diào)用格式:

curs=exec(conna,'sqlquery');

如curs=exec(conna,'select * from database')

其中conna為上文中鏈接對象,select * from database表示查詢表database所有數(shù)據(jù).

4.??????把數(shù)據(jù)庫中的數(shù)據(jù)讀取到Matlab中——fetch

調(diào)用格式:

curs=fetch(curs,RowLimit);

Data=curs.Data;%把讀取到的數(shù)據(jù)用變量Data保存.

如curs=fetch(curs);

把所有的數(shù)據(jù)一次全部讀取到Matlab中,RowLimit為每次讀取的數(shù)據(jù)參數(shù)的行數(shù),默認為全部讀取,但是全部讀取會很費時間(和計算機性能很大關(guān)系)。

上述四點是matlab從數(shù)據(jù)庫文件中讀取數(shù)據(jù)到matlab中的基本步驟。

5.??????數(shù)據(jù)返回類型

從數(shù)據(jù)庫中讀取數(shù)據(jù)到matlab有三種數(shù)據(jù)類型(默認為元胞類型cellarray),分別為元胞類型(cellarray),數(shù)字型(numeric),結(jié)構(gòu)型(structure)。可以在鏈接數(shù)據(jù)庫之前通過setdbprefs函數(shù)來進行設(shè)置。如果數(shù)據(jù)庫文件中全部是數(shù)值型數(shù)據(jù)時最好采用numeric型的數(shù)據(jù),這樣可以使得讀取速度大幅提高,特別是在大型數(shù)據(jù)讀取時非常明顯。我曾經(jīng)從數(shù)據(jù)庫中讀取過100萬個數(shù)據(jù),用cellarray時用了16s,但是用numeric時卻只用了8s,速度提高很大啊,對電腦配置不好的來說,很有幫助的。(還有我的電腦很爛,1.3GHz,384M內(nèi)存,可能讓大家見笑了…….)

調(diào)用格式:

setdbprefs(‘datareturnformat’,’numric’)

6.??????養(yǎng)成良好習慣,隨手關(guān)閉鏈接對象和游標——close

當不再使用數(shù)據(jù)庫的鏈接對象時要及時關(guān)閉,這樣才能及時的釋放出內(nèi)存,而且每次鏈接后所需要的內(nèi)存量是非常大的,要是不及時關(guān)閉的話對后續(xù)計算的影響將非常非常的大。(?針對爛機子而言,要是你的電腦超強也無所謂的…..)

調(diào)用格式:

close(curs)

close(conna)

7.??????查看數(shù)據(jù)相關(guān)信息

Rows-查看數(shù)據(jù)行數(shù)

調(diào)用格式:numrows=rows(curs)

Cols——查看數(shù)據(jù)列數(shù)

調(diào)用格式:numcols=cols(curs)

Attr——查看數(shù)據(jù)屬性

調(diào)用格式:attribute=attr(curs)

?

第二部分:把數(shù)據(jù)寫入到數(shù)據(jù)庫中

8.??????添加數(shù)據(jù)到表中——insert函數(shù)

調(diào)用格式:

insert(conna,’tab’,colnames,exdata)

conna——鏈接對象

tab——數(shù)據(jù)庫文件的表名

colnames——數(shù)據(jù)庫表的列名

exdata——matlab變量

如:insert(conna,'try',{'a1', 'a2'},[45 65])

????commit(conna)%確認數(shù)據(jù)更改

9.??????更新數(shù)據(jù)庫中的數(shù)據(jù)——update

調(diào)用格式:

update(conna,’tab’,colnames,exdata,’whereclause’)

conna——鏈接對象

tab——數(shù)據(jù)庫文件的表名

colnames——數(shù)據(jù)庫表的列名

exdata——matlab變量

whereclause——SQL的where字句

如:update(conna,'try',{'a1','a2'},[45 65],’where XX=’XX’’)

commit(conna)%確認數(shù)據(jù)更改

10.??建立新表——exec,creat table

調(diào)用格式:

conna=database('SampleDB','','');

exec(conna,['createtable Table(name string,age int)']);

close(conna);


總結(jié)

以上是生活随笔為你收集整理的matlab 与数据库操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。