我知道你们中的许多人会认为这应该很容易解决。然而,我对MATLAB一无所知。
我的问题是:当试图通过命令在命令窗口中执行以下示例时
getLogReturnExcel('ALL.xls', {'ALL'}, 37000, 38000)
出现此函数的单元格类型错误。然而,据我所知,当使用{}时,函数应该抓取{}内部的类型(在这种情况下是字符串?),而不是单元格本身,如果我们使用(),就会抓取单元格本身,所以应该不会有错误?或者,我可能会监督一些更初级的事情吗?提前感谢您的每一点帮助;正如你所知,我非常需要它。
干杯,Ben
下面是函数getLogReturnExcel:
function [logreturn, datearray] = getLogReturnExcel( datafilename, ticker, begindate, enddate )
[aanumber, aatext] = xlsread(datafilename);
aaticker = aatext(:,1);
aadate = aanumber(:,2);
aaret = zeros(length(aaticker),1);
aaret(1,1) = 0;
for i = 2:length(aaret)
aaret(i,1) = ln(aanumber(i,3))-ln(aanumber(i-1,3));
end
aadate = aadate(strcmp(aaticker,ticker));
aaret = aaret(strcmp(aaticker,ticker));
logreturn = aaret(aadate>=begindate & aadate<=enddate);
datearray = aadate(aadate>=begindate & aadate<=enddate);
return
文件"ALL.xls"包含3列,一列带字符串(股票的缩写),两列带数字(我假设是双),一列表示Excel格式的日期,一列显示每天的库存情况。
字符串可以通过使用:获得
ticker{:}
或者行中的比较
aadate = aadate(strcmp(aaticker,ticker));
aaret = aaret(strcmp(aaticker,ticker));
将位于字符串和单元格数组之间。
以下是一些访问单元数组元素的文档。