我有一個m
x n
金融時間序列對象(fints)叫data
。現在我想通過只保留相交日期(系列標題都是唯一的)將其n
系列中的每一個合併爲一個新的提示。
這是我做的:Matlab - 爲什麼不以逗號分隔的列表作爲輸入參數?
headers = fieldnames(data,1); %get the headers.
series = strcat('data.', headers); %list of the series to be merged.
new_fints = merge(series{:},... %merge the series.
'DateSetMethod','Intersection');
但是這給了我以下錯誤:未定義功能「合併」類型「字符」的輸入參數。
我的逗號分隔列表有什麼問題?
什麼也沒有。有錯誤消息不抱怨,它告訴你Matlab找不到'merge'函數。 「合併」給你什麼? – sebastian
嗯,你意識到'series = strcat('data。',headers);'給出了一個字符串列表?看起來你真的想要所有領域的價值......?如果是這樣'series = struct2cell(data);'應該可以做你想做的事情。 – sebastian
你錯了。 merge函數實際上是一種方法,它將一系列對象作爲輸入 - 而不是你存儲這些變量的名字。由於MATLAB函數的作用域規則,函數因此無法找到'char'輸入。從參數上的文檔:「要合併的逗號分隔的金融時間序列對象列表。」(http://www.mathworks.de/de/help/finance/merge.html) – sebastian