首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用列表重命名数据集

使用列表重命名数据集
EN

Stack Overflow用户
提问于 2013-11-15 10:56:50
回答 1查看 260关注 0票数 0

我刚开始编程,我一直在努力想办法解决这个问题。

我正试图将大约300个mysql表放入到我的工作区中。

我附加了以下代码,该代码旨在拉出一个表(我计划在运行时通过300个mysql表循环这段代码)。

代码成功地将单个表作为新的数据集导入工作区。

当我试图用原始mysql表的名称重命名这个新数据集时,我的问题就出现了。

请参阅下面这一部分的代码,我搞砸了(%将数据赋值给输出变量)

我有一个所有300个表名的列表,我计划将它们存储在一个名为“name”的列表中.因此,名字(1)..。这样做对吗?

例如,原始mysql表名为“options_20020208”。

运行脚本后,我需要Matlab导入的新数据集也称为“options_20020208”。

这里有什么想法吗?

代码语言:javascript
复制
%Define Query

 name = 'options_20020208'




%Set preferences with setdbprefs.
setdbprefs('DataReturnFormat', 'dataset');
setdbprefs('NullNumberRead', 'NaN');
setdbprefs('NullStringRead', 'null');


%Make connection to database.  
conn = database('', 'root', 'password', 'Vendor', 'MYSQL', 'Server', 'localhost', 'PortNumber', 3306);


%Read data from database.
curs = exec(conn, [['SELECT  ',name,'.UnderlyingSymbol , ']...
 ,  [name,'.UnderlyingPrice  , ']...
 ,  [name,'.Expiration  , ']...
 ,  ['FROM ','PriceMatrix.',name,'   ']... 
]);

curs = fetch(curs);

close(curs);

%Assign data to output variable
name(1) = curs.Data;

%Close database connection.
close(conn);

%Clear variables
clear curs conn
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-15 13:09:27

如果您已经定义了一个变量name,那么name(1)的意思是“变量名的第一个元素”(在本例中就是"o")。不管变量的维数如何,它都返回一个值(即,即使X是一个5维的怪物,X(50)也只返回第50个元素的值)。name(1) = data的意思是“将变量name的第一个元素设置为等于data”,如果数据大小不合适,则会导致错误;如果数据类型不正确,则会导致错误或意外行为。

例如,在命令行中尝试这样做:

代码语言:javascript
复制
name = 'options_20020208';
name(1) = 1

现在,从技术上讲,你想要的都可以完成,尽管我不推荐。如果在某种类型的300x(长度)变量中有所有的名称,那么在n= 1:300的循环中,它将是这样的(其中name是变量名称的列表):

代码语言:javascript
复制
eval([name(n,:) ' = curs.Data;'])

这将返回300个名为“options_20020208”或类似的变量,每个变量包含一组curs.Data。但是,有更好的方法可以在工作区中存储数据,从而使对数据的进一步操作更容易,例如,您可以使用结构:

代码语言:javascript
复制
myStruct(n).name = name(n,:);
myStruct(n).Data = curs.Data;

例如,如果您想进行一些分析,然后以某种格式保存所有这些数据,那么遍历结构并将文件名设置为[myStruct(n).name,'.csv'],将文件内容设置为mystruct(n).AdjustedData等就会容易得多,然后处理300个命名变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19999464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档