Search through Cell
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi, I have problem working with cells.
I have a 1 x 4 cell with each cell containing an N X 1 column vector. How do I search through all the first three cell elements for the rows having a given value.
To illustrate further, if I a matrix, A = N X 4; and want to find where the values 0 occur, I do
[row column] = find(A(:,1:3) == 0);
So, essentially what I am looking for is its equivalent command for a cell.
댓글 수: 0
채택된 답변
Jan
2011년 8월 19일
What about a trivial FOR loop:
C = {rand(100, 1), rand(100, 1), rand(100, 1), rand(100, 1)};
value = 0.5;
row = cell(1, 3);
column = cell(1, 3);
for i = 1:3
[row{i}, column{i}] = find(C{1} == value);
end
This can be done by CELLFUN also, but I do not see an advantage.
Or you can create the numerical matrix explicitely and use logical indexing:
Match = find(cat(2, C{1:3}) == value);
Usually using the columns of the logical matrix Match is faster than using separate index vectors.
추가 답변 (1개)
Daniel Shub
2011년 8월 19일
A = cell2mat(A);
[row column] = find(A(:,1:3) == 0);
A = mat2cell(x, N, [1, 1, 1, 1]);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Whos에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!