Extracting rows from a matrix based on values in columns

조회 수: 1 (최근 30일)
Maria445
Maria445 2017년 10월 8일
댓글: Maria445 2017년 10월 8일
Following on from this question
What if I have more than 1 column? That is, I want A to be a 6-by-4 matrix for example, so to have C{1} = 4-by-3 matrix?

채택된 답변

Guillaume
Guillaume 2017년 10월 8일
It's much easier to do this with the newer splitapply rather than the older accumarray:
A = [[1;1;3;2;3;1], rand(6, 3)]
C = splitapply(@(rows) {rows}, A(:, 2:end), A(:, 1))
  댓글 수: 2
Cedric
Cedric 2017년 10월 8일
I am up-voting even though ...
;)
Maria445
Maria445 2017년 10월 8일
Awesome, thanks!

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

추가 답변 (1개)

Kaushik Lakshminarasimhan
Kaushik Lakshminarasimhan 2017년 10월 8일
for n=2:4, C_temp(:,n-1) = accumarray(A(:,1),A(:,n),[],@(n){n}); end
for m=1:size(C_temp,1), C{m} = cell2mat(C_temp(m,:)); end

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by