我将我的数据作为一个看起来像这样的单元格返回(每个交易在单元格中彼此相同,即它是一个5乘4的单元格):
sell 50 FTSE 6500
buy 100 Eurostoxx 3300
buy 25 SP 1980
buy 30 FTSE 6490
sell 25 Eurostoxx 3315
首先是因为我混合数据从数据库查询作为单元格返回,因此不确定这是否存在问题
我想做的是将这些标记上市,因此我将每个合约的收盘价作为变量,我们称之为FTSE_CLOSE
,EUROSTOXX_CLOSE
和{{1 }}。
我希望能够做一些如下的事情:
SP_CLOSE
等其他合同。
基本上我正在努力混合使用字符串和数字
where coloumn 3 = "FTSE" and column 1 = "sell" then column 5 = column2 * (column4 - FTSE_CLOSE)
where column 3 = "FTSE" and column 1 = "buy" then column 5 = column2 * (FTSE_CLOSE - column4)
一切所以我有几个向量然后以某种方式查看字符串向量并对其他相关向量执行calucaltion,即cell2mat
答案 0 :(得分:0)
我认为您只是在寻找命令str2num
这是一个想法:
input_data={"sell","50","FTSE","6500";
"buy","100","Eurostoxx","3300";
"buy","25","SP","1980",
"buy","30","FTSE","6490",
"sell","25","Eurostoxx","3315"};
closing_price.FTSE=6000;
closing_price.Eurostoxx=3000;
closing_price.SP=2000;
for i=1:size(input_data,1)
if strcmp(input_data{i,1},'sell')
diff_from_market(i)=str2num(input_data{i,2}) ...
*(str2num(input_data{i,4})-closing_price.(input_data{i,3}));
elseif strcmp(input_data{i,1},'buy')
diff_from_market(i)=str2num(input_data{i,2}) ...
*(closing_price.(input_data{i,3})-str2num(input_data{i,4}));
end
end
diff_from_market