No BSD License  

Highlights from
DatabaseCell2Mat

Be the first to rate this file! 1 Download (last 30 days) File Size: 2.75 KB File ID: #3891
image thumbnail

DatabaseCell2Mat

by Michael Robbins

 

20 Aug 2003 (Updated 21 Aug 2003)

Converts the cell matrix that the Database Toolbox provides into a numeric matrix and a structure.

| Watch this File

File Information
Description

DATABASECELL2MAT converts the cell matrix that the Database Toolbox provides into a numeric matrix and a structure. The fieldnames of the structure will be the same as the column names of the tables.
 
It converts date/time types into MATLAB julians and bit types into 1s and 0s.
 
Without this utility, dates would be in string format not compatible with datenum and the bit types would be "true" or "false".
 
CAVEATS:
  Times are ignored
  Strings are not handled.
 
INPUTS:
  Cellstring matrix
  Table attributes
 
USAGE:
  c=database('mydb','','');
  query=['SELECT * FROM mytable;'];
  curs=exec(c,query);
  curs=fetch(curs);
  [mat,s]=DatabaseCell2Mat(curs.Data,attr(curs));
  close(c);
>> curs.data(1:4,:)
    [4.2][1x21 char][-13.3][ 1.8][ 6.4][-7.9][-24.7][1x21 char] 'false'
    [5.5][1x21 char][ -4.7][ 6.8][11.7][-1.8][-17.2][1x21 char] 'false'
    [ 4][1x21 char][ -7.3][ 2.3][ 7.2][-3.7][-17.1][1x21 char] 'false'
    [5.7][1x21 char][ -6.6][-0.3][ 9.4][-1.6][ -16][1x21 char] 'false'
>> curs.data(1:4,2)
    '2003-03-31 00:00:00.0'
    '2003-03-31 00:00:00.0'
    '2003-04-30 00:00:00.0'
    '2003-04-30 00:00:00.0'
>> mat(1:4,:)
  1.0e+005 *
    0.0000 7.3167 -0.0001 0.0000 0.0001 -0.0001 -0.0002 7.3164 0
    0.0001 7.3167 -0.0000 0.0001 0.0001 -0.0000 -0.0002 7.3164 0
    0.0000 7.3170 -0.0001 0.0000 0.0001 -0.0000 -0.0002 7.3164 0
    0.0001 7.3170 -0.0001 -0.0000 0.0001 -0.0000 -0.0002 7.3164 0
>> s
        Coupon: [13215x1 double]
      Maturity: [13215x1 double]
       Axx_Spd: [13215x1 double]
        AX_COD: [13215x1 double]
    AX_100dMax: [13215x1 double]
    AX_100dAvg: [13215x1 double]
    AX_100dMin: [13215x1 double]
       AX_Date: [13215x1 double]
       Current: [13215x1 double]
 
It's not fancy, but it works.

Required Products Database Toolbox
MATLAB release MATLAB 6.5 (R13)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (1)
10 Feb 2005 Neil Caithness

I know it's some time since this was submitted, but the database toolbox does quite a nice job of this now. Try something like --

function data=db2struct(odbc,username,password,table,fields)

conn=database(odbc,username,password);
if nargin<4
    meta=dmd(conn);
    data=tables(meta,'cata');
else
    if nargin<5, fields='*'; end
    setdbprefs('DataReturnFormat','structure');
    curs=exec(conn,['SELECT ' fields ' FROM ' table]);
    curs=fetch(curs);
    data=curs.Data;
end

Please login to add a comment or rating.
Tag Activity for this File
Tag Applied By Date/Time
data import Michael Robbins 22 Oct 2008 07:06:43
data export Michael Robbins 22 Oct 2008 07:06:43
database Michael Robbins 22 Oct 2008 07:06:43
toolbox Michael Robbins 22 Oct 2008 07:06:43
cellstr Michael Robbins 22 Oct 2008 07:06:43
boolean Michael Robbins 22 Oct 2008 07:06:43
date Michael Robbins 22 Oct 2008 07:06:43
time Michael Robbins 22 Oct 2008 07:06:43
datetime Michael Robbins 22 Oct 2008 07:06:43

Contact us at files@mathworks.com