order using first column in array cell
이전 댓글 표시
newList=sortrows(newList,1);
Error using matlab.internal.math.cellstrpad
Cell elements must be character arrays.
Error in sortrows>sortBackToFrontCell (line 137)
tmp = matlab.internal.math.cellstrpad(A(I,ack));
Error in sortrows (line 77)
I = sortBackToFrontCell(A, col);
채택된 답변
추가 답변 (2개)
Fixed code below. Read comments for explanation.
s = load('matlab_cell.mat');
originalList = s.newList
% The problem with sorting is that some cells in column 1 contain strings
% while other cells contain character arrays -- they different!
% Convert strings in column 1 into character arrays so that sortrows will work.
for row = 1 : height(originalList)
% Copy the other columns as is.
newList(row, :) = originalList(row, :);
thisCellContents = originalList{row, 1};
if isstring(thisCellContents)
% If it's a string (double quotes) turn it into a character array (single quotes).
thisCellContents = char(thisCellContents);
newList{row, 1} = thisCellContents;
end
end
% Sort the new list, not the original list.
sortedCellArray = sortrows(newList, 1)
카테고리
도움말 센터 및 File Exchange에서 Cell Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!