首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对单元格数组进行排序

对单元格数组进行排序
EN

Stack Overflow用户
提问于 2011-08-09 18:47:22
回答 2查看 10K关注 0票数 2

我想根据第二个条目对行进行排序,即按第二列排序。第二列的每个条目都是一个数组字符(表示一个时间戳)。也可能有缺失值,即第二列中的条目可以是[]。我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-09 18:56:11

如果要排序的矩阵是A,则需要使用sortrows()函数,然后使用

sorted_matrix = sortrows(A,2);

http://www.mathworks.com/help/techdoc/ref/sortrows.html

票数 5
EN

Stack Overflow用户

发布于 2011-08-09 18:59:27

我首先使用函数DATENUM将时间戳从字符串转换为数字值。然后,您需要用占位符替换空单元格的内容,如NaN。您可以使用函数SORTROWS根据第二列进行排序。下面是一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>> mat = {1 '1/1/10' 3; 4 [] 6; 7 '1/1/09' 9}  %# Sample cell array

mat = 

    [1]    '1/1/10'    [3]
    [4]          []    [6]
    [7]    '1/1/09'    [9]

>> validIndex = ~cellfun('isempty',mat(:,2));  %# Find non-empty indices
>> mat(validIndex,2) = num2cell(datenum(mat(validIndex,2)));  %# Convert dates
>> mat(~validIndex,2) = {NaN};  %# Replace empty cells with NaN
>> mat = sortrows(mat,2)  %# Sort based on the second column

mat = 

    [7]    [733774]    [9]
    [1]    [734139]    [3]
    [4]    [   NaN]    [6]

在这种情况下,NaN值将排序到底部。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7001294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文