How can I search or sort a cell array of vectors when the vectors have non-uniform length?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello,
I've been trying to sort a 1xN cell array of vectors by the first element in the vector, where the vectors do not have the same length, without using a for loop. This problem can be reduced to being able to return the first element in the vector at each row of the cell array.
Specifically, I have an undirected graph where each each vector in a cell array has the node as the first element, and all of the nodes it is connected to in the elements after that.
Example: If Node 1 is connected to node 2 and 4, and Node 3 is connected to node 4, an unsorted cell array A representing this is: A = {[1,2,4];[3,4];[2,1];[4,1,3]}
I want to find some method of searching for the row of cell array A corresponding to node 2.
I've tried using the command sortrows([A{:}]), but having non-uniform vectors forces cell2mat to convert the cell array to a single row.
Also, I've tried A{:}(1) and A(1:4){1} to only return the first column in the cell array, but this causes a "Bad cell reference operation" error.
Would anyone happen to know of some easy way to do this without a for loop?
Thanks, Dennis
댓글 수: 2
per isakson
2015년 5월 8일
편집: per isakson
2015년 5월 8일
"return the first element in the vector at each row of the cell array"
>> cellfun( @(vec) vec(1), A )
ans =
1
3
2
4
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!