So i have this "matrix". First column is names, second colomn is passwords. I want to display this data alphabetically by name. I don´t know how to do this.So here is the original matrix,
{'john'} {'jojo'}
{'victor'} {'vivi'}
{'andre'} {'dredre'}
and here is the result i want to display:
{'andre'} {'dredre'}
{'john'} {'jojo'}
{'victor'} {'vivi'}
Thanks!

 채택된 답변

KL
KL 2017년 12월 7일
편집: KL 2017년 12월 7일

0 개 추천

That's not a matrix. If you meant to store them in cell arrays,
C = {'john', 'jojo';'victor', 'vivi';'andre', 'dredre'};
It would look like
C =
6×1 cell array
'john' 'jojo'
'victor' 'vivi'
'andre' 'dredre'
Now use just sortrows
C = sortrows(C,1)
3×2 cell array
'andre' 'dredre'
'john' 'jojo'
'victor' 'vivi'
Neverthless better idea to store such data is to use tables,
names = {'John';'victor';'andre';};
passwords= {'jojo';'vivi';'dredre'};
T = table(passwords,'RowNames',names)
and it looks like,
T =
3×1 table
passwords
_________
John 'jojo'
victor 'vivi'
andre 'dredre'
now, again sortrows,
sortrows(T)
3×1 table
passwords
_________
andre 'dredre'
John 'jojo'
victor 'vivi'

댓글 수: 3

José Pereira
José Pereira 2017년 12월 7일
Thanks. It worked. Do you know how to do exacly that by only using the sort function? This is for a school project and i cannot use the sortrows function. Thanks a lot
If you are still opting to use cell array, then simply use sort and only for first column. Extract the sorted indices from the result and use it sort the original cell array.
C = {'john', 'jojo';'victor', 'vivi';'andre', 'dredre'}
[~,indx] = sort(C(:,1));
sortedC = C(indx,:)
sortedC =
3×2 cell array
'andre' 'dredre'
'john' 'jojo'
'victor' 'vivi'
José Pereira
José Pereira 2017년 12월 7일
That is exactly what i wanted. Thanks

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

태그

질문:

2017년 12월 7일

댓글:

2017년 12월 7일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by