我有一个名为'股票'的股票价格数据集。每列是不同的库存。每行都是股票价格的日期。
如何对给定日期的股票价格进行排名?
我试过
tiedrank(stocks.yhoo)
它成功地排列了YHOO股票的价格。但是,我想按行排名,而不是列。
另外,当我尝试
时tiedrank(stocks(1,:))
或删除第1列中的日期列
tiedrank(stocks(1,2:3))
我收到错误消息:数据集数组下标必须是二维的。
我做错了吗?或者我最好使用矩阵?
答案 0 :(得分:1)
如果我理解正确,您希望根据给定日期的价格对股票进行排名,其中日期是行,而股票是列。要在行中使用tiedrank
,您需要将数据集的该部分转换为double
,然后使用输出索引列表进行排序:
%# create index for sorting
idx = tiedrank( double( stocks(1,:) ));
%# reorder columns with index
sortedStocks = stocks(:,idx);