Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 对数据集行中的值进行排序_Matlab - Fatal编程技术网

Matlab 对数据集行中的值进行排序

Matlab 对数据集行中的值进行排序,matlab,Matlab,我有一个叫做“股票”的股票价格数据集。每一列都是不同的股票。每一行都是股票价格的日期 如何对给定日期的股票价格进行排名 我试过了 tiedrank(stocks.yhoo) 它还成功地对YHOO股票的价格进行了排名。然而,我想按行排序,而不是按列排序 还有,当我试着 tiedrank(stocks(1,:)) 或删除第1列中的日期列 tiedrank(stocks(1,2:3)) 我得到了错误消息:数据集数组下标必须是二维的 我做错什么了吗?或者我最好使用矩阵?如果我理解正确,您希望根据

我有一个叫做“股票”的股票价格数据集。每一列都是不同的股票。每一行都是股票价格的日期

如何对给定日期的股票价格进行排名

我试过了

 tiedrank(stocks.yhoo)
它还成功地对YHOO股票的价格进行了排名。然而,我想按行排序,而不是按列排序

还有,当我试着

tiedrank(stocks(1,:))
或删除第1列中的日期列

tiedrank(stocks(1,2:3))
我得到了错误消息:数据集数组下标必须是二维的


我做错什么了吗?或者我最好使用矩阵?

如果我理解正确,您希望根据给定日期的价格对股票进行排序,其中日期是行,股票是列。要在一行中使用
,需要将数据集的该部分转换为
double
,然后使用输出索引列表进行排序:

%# create index for sorting
idx = tiedrank( double( stocks(1,:) ));

%# reorder columns with index
sortedStocks = stocks(:,idx);

看起来您的股票数据集属于类struct。如果您需要阅读如何从结构数组中提取数据,或将数据转换为单元格数组并从中进行处理,这将对您有所帮助。@natan:它似乎不是结构,而是数组。@Jonas,很抱歉您是对的。。。我认为只有结构与var1.field格式一起使用。数据集是什么时候出现的?@natan:最晚;也许更早。@Jonas“通过我所有的老师我变得更聪明了”,谢谢!Matlab涉及的类型转换比我预期的要多。转换是为了将数据集转换为“标准”数组。顺便说一句,不客气。