在matlab 2009中将单元数据转换为正确的表转换

时间:2014-05-08 08:50:51

标签: database matlab

我正在使用matlab 2009版。我使用following code

通过数据库访问数据
    conn = actxserver('ADODB.Connection');
    conn.Open('Provider=sqloledb;Data Source=localhost\SQLEXPRESS;Initial Catalog=user_control_ex01;Integrated Security=SSPI;');
    dat=conn.Execute('select * from user_ident').GetRows;

返回的表格采用这种格式

dat = 

[         1]    [         2]    [         3]    [         4]
'Admin     '    'user      '    'user2     '    'hello     '
'Admin     '    'user      '    'user2     '    'hello123  '

正如您所看到的,这是2x4单元格返回的对象。我希望将此单元格转换为正确的表格或某种格式,以便我可以访问确切的行列条目。我正在考虑使用这个单元格,但无法知道如何继续。我想访问row_number和列号引用的数据。有人可以提供一些帮助,因为这个单元格不是正确的行列格式,它将一行显示为列。

1 个答案:

答案 0 :(得分:1)

看起来你已经在第一行填充了一个3x4单元格,其中列标题(在本例中为数字)。如果是这种情况,你可以剥掉标题。

datHeader = dat(1,:);
datRows = dat(2:end,:);

然后您可以使用datRows{iRow}{iColumn}索引它。

但是,如果您正在使用较大的数据集并拥有任何数字数据,那么您可能希望将数字列从cell数组转换为double数组,并且将数据存储为列向量的单元格数组而不是2-D单元格数组。并在char列上调用deblank()以修剪尾随空格,这适用于2-D char数组但不适用于cellstr s。