楼主: CrewsHe
3590 1

MATLAB toolbox(2) -数据输入输出(2) (DATABASE )-SQL [推广有奖]

  • 1关注
  • 0粉丝

已卖:785份资源

本科生

4%

还不是VIP/贵宾

-

威望
0
论坛币
639 个
通用积分
0.5789
学术水平
3 点
热心指数
3 点
信用等级
1 点
经验
758 点
帖子
26
精华
0
在线时间
94 小时
注册时间
2010-6-5
最后登录
2025-12-13

楼主
CrewsHe 发表于 2010-9-12 15:42:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
WWW.WHOOL.NET

前一个datafeed用的是网络接口数据,不过平时用的多的还是一些其他来源的数据,好一点的会整理到数据库中,要不就是MS access或者MS excel,txt格式的数据了,对这些数据进行的输入输出操作,可以采用这些办法:
1.数据库数据,database工具箱。
MATLAB的数据库工具箱的GUI需要在编译窗口运行querybuilder。启动以后可以得到这样的界面:
  
为了测试的方便使用MSsql建立一个whool!数据库作为测试数据库

建立一个matlab的ODBC的链接到数据库:




测试数据库

使用GUI对数据进行操作,首选选取要连接的数据库,开始我们进行数据的输入再进行输出测试。
在matlab中建立一个whool0的变量作为测试。
对数据库数值进行查询

这个是对数据进行输入的界面,过程大致是一样的,中间有一些选择的条件可以对数据进行过滤。  
以上是一个很简单的应用,熟悉以后就可以脱离GUI界面,直接编写m文件了。
下面是一个利用网络读取数据后插入到指定的数据库的代码,以前做的,现在应该是失效了,有兴趣可以看看。
function WhoolTradeHistoryInsertData(line_buff,symbol)   
ptr1       = strfind(line_buff, ‘{‘);     
ptr2       = strfind(line_buff,’}');     
M=length(ptr1)     
for j=5:-1:1     
      daydata0=(line_buff(ptr1(j):ptr2(j)));     
      ptr3       = strfind(daydata0, ‘:"’);     
      ptr4       = strfind(daydata0,’",’);     
    daydata.open=str2double(daydata0(ptr3(1)+2:ptr4(1)-1));     
    daydata.low=str2double(daydata0(ptr3(2)+2:ptr4(2)-1));     
    daydata.volume=str2double(daydata0(ptr3(3)+2:ptr4(3)-1));     
    daydata.high=str2double(daydata0(ptr3(4)+2:ptr4(4)-1));     
    daydata.close=str2double(daydata0(ptr3(6)+2:ptr4(6)-1));     
    daydata.adjclose=str2double(daydata0(ptr3(8)+2:ptr4(8)-1));     
    datestr=daydata0(ptr3(7)+2:ptr4(7)-1);     
    ptrdate = strfind(datestr,’-');     
        subyear=str2double(datestr(1:ptrdate(1)-1));     
        submonth=str2double(datestr(ptrdate(1)+1:ptrdate(2)-1));     
        subday=str2double(datestr(ptrdate(2)+1:end));     
    daydata.date = datenum(subyear, submonth, subday)-693960;     
    update = strcat(‘SELECT max(DATE) FROM WhoolTradeHistoryData.dbo.’,symbol);     
conn = database(‘WhoolTradeHistoryData’,”,’password’);     
last = exec(conn,update);     
last = fetch(last);     
lastvalue=cell2mat(last.Data);     
  if (lastvalue<daydata.date)||isnan(lastvalue)     
exdata = {daydata.open,daydata.low,daydata.volume,…     
        daydata.high,daydata.close,daydata.date,daydata.adjclose}     
     clear last;     
   colnames = {‘OPENPRICE’,'LOWPRICE’,'VOLUME’,'HIGHPRICE’,'CLOSEPRICE’,'DATE’,'ADJCLOSEPRICE’}     
    table= strcat(‘WhoolTradeHistoryData.dbo.’,symbol);     
  fastinsert(conn,table, colnames, exdata);     
  end     
end     
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:database toolbox MATLAB matla atlab database database toolbox MATLAB toolbox

Whool!
www.whool.net

沙发
air320322 发表于 2010-9-12 22:59:06
这么好的文章应该顶一下
谢谢
我一直很需要MATLAB连接外部数据的帖子
不明真相的群众

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-11 14:43