Arrays Matlab数组排序

Arrays Matlab数组排序,arrays,matlab,sorting,Arrays,Matlab,Sorting,我有一个这样的数组(来自excel文件) 原始= ':Gamer Name' 'mail' 'true' 'false' 'Date' 'Haydar' [ 1] [2] [3] [ 5] 'Çınar' [ 3] [4] [1] [

我有一个这样的数组(来自excel文件)

原始=

':Gamer Name'    'mail'                    'true'    'false'    'Date'               
'Haydar'         [                   1]    [2]    [3]    [                   5]
'Çınar'         [                   3]    [4]    [1]    [                   6]
'Ali'            [                   2]    [5]    [2]    [                   3]
' Oyuncu'        [                 NaN]    [0]    [3]    [                 NaN]
' Oyuncu'        [                 NaN]    [0]    [3]    [                 NaN]
' Oyuncu'        [                 NaN]    [0]    [3]    '11-Apr-2017 19:17:10'
' Haydar'        'haydarc'                 [0]    [3]    '11-Apr-2017 19:22:14'
[        NaN]    [                 NaN]    [0]    [3]    '11-Apr-2017 19:24:40'
[        NaN]    [                 NaN]    [3]    [0]    '11-Apr-2017 19:27:45'
' Haydar'        'haydarcinar@yandex…'    [3]    [0]    '11-Apr-2017 20:02:04'
我想按“真”排序。我该怎么做?
谢谢

您可以根据单元格数组的第三列(即
true
)提取排序索引,然后根据该索引重新排列单元格数组的行。使用
sort
的第二个输出帮助您完成此操作

但是,第一行由字符组成。您需要做的是拉出第一行,对数字进行排序,然后重建排序后的单元格数组,将第一行放回:

raws = raw(2:end, :);
[~,ind] = sort(cell2mat(raws(:, 3));
raw_sorted = [raw(1,:); raws(ind, :));

该函数有助于将
true
列中的单元格列转换为矩阵,以便我们可以成功使用
sort
。找到排序索引后,只需在没有第一行的情况下将其索引到单元格数组中,但请确保将第一行放回原位。

您可以根据单元格数组的第三列(即
true
)提取排序索引,然后根据该列重新排列单元格数组的行。使用
sort
的第二个输出帮助您完成此操作

但是,第一行由字符组成。您需要做的是拉出第一行,对数字进行排序,然后重建排序后的单元格数组,将第一行放回:

raws = raw(2:end, :);
[~,ind] = sort(cell2mat(raws(:, 3));
raw_sorted = [raw(1,:); raws(ind, :));

该函数有助于将
true
列中的单元格列转换为矩阵,以便我们可以成功使用
sort
。一旦我们找到了排序的索引,只需在没有第一行的情况下索引到您的单元格数组中,但请确保将第一行放回原处。

谢谢您,先生。我已经试着分类一个小时了。但我不能。我很感谢你:)@haydarçınar没问题:)祝你好运!您也可以将这些数据打包到一个表中,而不是单元格数组中,然后只需调用
sortrows
@CKT好主意,但我希望尽可能通用<代码>表格直到R2013b才推出。谢谢您,先生。我已经试着分类一个小时了。但我不能。我很感谢你:)@haydarçınar没问题:)祝你好运!您也可以将这些数据打包到一个表中,而不是单元格数组中,然后只需调用
sortrows
@CKT好主意,但我希望尽可能通用<代码>表格直到R2013b才引入。