我有通过合并两个时间序列在matlab中创建投资组合的代码。如何检索资金的标题向量,以便从“端口”获取基金名称的向量?
Fund1ts=fints(Fund1Dates,Fund1Data,'Fund1');
Fund2ts=fints(Fund2Dates,Fund2Data,'Fund2');
%CREATE PORTFOLIO
Port=merge(Fund1ts,Fund2ts,'DateSetMethod','Intersection');
如果您在命令窗口中查看端口,它们就会出现。但是,如果您从工作区窗口打开端口,那么只有数据存在,因此我在检索它时遇到问题。 谢谢。
答案 0 :(得分:3)
正如Hugh Nolan在评论中也提出的那样,这应该会得到你所追求的名字:
fnames = fieldnames(Port, 1)
fnames = fieldnames(tsobj,srsnameonly)返回字段名称,具体取决于srsnameonly的设置。如果srsnameonly为0,则该函数返回所有字段名称,包括公共字段:desc,freq,dates和times。如果srsnameonly设置为1,则fieldnames仅返回fnames中的数据系列。
因此上面代码段中的1
。它只会返回Fund1
和Fund2
。
修改
似乎在Matlab中有一个名为fieldnames
的两个函数:
fieldnames
:names = fieldnames(s)
names = fieldnames(obj)
names = fieldnames(obj,' - full')
fnames = fieldnames(tsobj)
fnames = fieldnames(tsobj,srsnameonly)
如果使用一个输入参数调用,它们的运算方式相似。但是,对于此答案的未来读者:上面给出的特定答案仅适用于函数的Financial Toolbox
- 版本。