从财务时间序列对象中检索标头

时间:2013-06-19 14:24:18

标签: matlab

我有通过合并两个时间序列在matlab中创建投资组合的代码。如何检索资金的标题向量,以便从“端口”获取基金名称的向量?

Fund1ts=fints(Fund1Dates,Fund1Data,'Fund1');
Fund2ts=fints(Fund2Dates,Fund2Data,'Fund2');

%CREATE PORTFOLIO
Port=merge(Fund1ts,Fund2ts,'DateSetMethod','Intersection');

如果您在命令窗口中查看端口,它们就会出现。但是,如果您从工作区窗口打开端口,那么只有数据存在,因此我在检索它时遇到问题。 谢谢。

1 个答案:

答案 0 :(得分:3)

正如Hugh Nolan在评论中也提出的那样,这应该会得到你所追求的名字:

fnames = fieldnames(Port, 1)  

来自documentation

  

fnames = fieldnames(tsobj,srsnameonly)返回字段名称,具体取决于srsnameonly的设置。如果srsnameonly为0,则该函数返回所有字段名称,包括公共字段:desc,freq,dates和times。如果srsnameonly设置为1,则fieldnames仅返回fnames中的数据系列。

因此上面代码段中的1。它只会返回Fund1Fund2

修改

似乎在Matlab中有一个名为fieldnames两个函数:

  

names = fieldnames(s)
  names = fieldnames(obj)
  names = fieldnames(obj,' - full')

  

fnames = fieldnames(tsobj)
  fnames = fieldnames(tsobj,srsnameonly)

如果使用一个输入参数调用,它们的运算方式相似。但是,对于此答案的未来读者:上面给出的特定答案仅适用于函数的Financial Toolbox - 版本。