1

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

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

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

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

4

1 回答 1

3

正如 Hugh Nolan 在评论中所建议的那样,这应该会让你得到你想要的名字:

fnames = fieldnames(Port, 1)  

文档中:

fnames = fieldnames(tsobj, srsnameonly) 根据 srsnameonly 的设置返回字段名称。如果 srsnameonly 为 0,则该函数返回所有字段名称,包括公共字段:desc、freq、日期和时间。如果 srsnameonly 设置为 1,则 fieldnames 仅返回 fnames 中的数据系列。

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

编辑

Matlab 中似乎调用了两个函数:fieldnames

名称 = 字段
名称 名称 = 字段名称(obj)
名称 = 字段名称(obj,'-full')

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

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

于 2013-06-19T15:40:58.073 回答