我是MATLAB的新手。我有一个名为da
的数据结构。我想对da.mat
的第一列进行排序,并希望让da.rid
和其他列遵循重新排列的顺序。 da.cid
包含列名称,da.rid
包含行ID。
da =
mat: [22268x377 single]
rid: {22268x1 cell}
rhd: {''}
rdesc: {22268x1 cell}
cid: {377x1 cell}
chd: {0x1 cell}
cdesc: {377x0 cell}
另外,如果我想使用其他列而不是da.mat
的第一列,我将从da.cid
获取,我该如何实现呢?
例如,如果我想在'A02'
中查找列名cid
,并使用它来选择da.mat
的特定列进行排序。请你帮助我好吗?感谢。
木质
答案 0 :(得分:0)
假设其他列,您的意思是da.mat
本身的其他列,您可以试试这个 -
[val,ind] = sort(da.mat(:,1))
da.mat = da.mat(ind,:)
da.rid = da.rid(ind)
如果您希望使用其他列号而不是1
进行排序,并根据字段cid
中的名称,请使用此项 -
cid_matchcol = 'A02'; %// column name to be used from `da.cid` to choose column of `da.mat`
base_col = find(strcmp(da.cid,cid_matchcol),1)
[val,ind] = sort(da.mat(:,base_col))
da.mat = da.mat(ind,:)
da.rid = da.rid(ind)