MATLAB Answers

how to sort a cell array inside a struct?

3 ビュー (過去 30 日間)
Chiara Scarpellini
Chiara Scarpellini 2021 年 7 月 29 日
回答済み: Peter Perkins 2021 年 7 月 29 日
I have this struct and I have to sort every vector on the right side
T=table(string,ID_number);
[G, IDs] = findgroups(T.string);
C = splitapply(@(x){x},T.ID_number,G);
Name_Code = struct('name', cellstr(IDs), 'Code', C);

採用された回答

Peter Perkins
Peter Perkins 2021 年 7 月 29 日
I think you would be better off with a table than a struct.
Name_Code = table(IDs, C,'VariableNames',["Name" "Codes"])
Name_Code.Codes = cellfun(@sort,Name_Code.Code,"UniformOutput",false)
But Jan is correct, do it at the source.

その他の回答 (1 件)

Jan
Jan 2021 年 7 月 29 日
Expand
C = splitapply(@(x) {x}, T.ID_number, G);
to
C = splitapply(@(x) {sort(x)}, T.ID_number, G);

Community Treasure Hunt

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

Start Hunting!

Translated by