gpt4 book ai didi

matlab - 如何根据两列对矩阵进行排序

转载 作者:行者123 更新时间:2023-12-02 08:53:33 24 4
gpt4 key购买 nike

我正在尝试使用 MATLAB 根据两列对元胞矩阵进行排序:

ticker date price
msft 1/9/11 19.8
msft 1/8/11 18.7
csco 1/8/11 9.8
csco 1/9/11 10.0

我想先按日期然后按代码对矩阵进行排序,所以我想要的结果是:

ticker date price
csco 1/8/11 9.8
msft 1/8/11 18.7
csco 1/9/11 10.0
msft 1/9/11 19.8

有人知道我该怎么做吗?谢谢。

最佳答案

我会将日期列转换为相应的日期序列号 datenum并使用sortrows使用所需的顺序对数据进行排序。

这是一些代码;假设 d 是您给出的示例中的 4x3 元胞数组:

d = 

'msft' '1/9/11' [19.8000]
'msft' '1/8/11' [18.7000]
'csco' '1/8/11' [ 9.8000]
'csco' '1/9/11' [ 10]
  • 使用 arrayfun 将日期列转换为数字

    d(:,2) = arrayfun(@(x){datenum(x)},d(:,2));
  • 使用 sortrows 对矩阵进行排序(首先是日期,然后是股票代码)

    d = sortrows(d,[2 1]);
  • 将日期替换为 datestr 的字符串.

    d(:,2) = arrayfun(@(x){datestr(x{1},'mm/dd/yy')},d(:,2));

关于matlab - 如何根据两列对矩阵进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6681848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com