나는 벡터가있다. as=[1 3 4]
과 나는 30 by 30
셀 배열을 가진다. 벡터 as
의 요소가 각 셀의 요소와 교차하는지 여부를 확인하고 싶습니다. 그렇다면, 나는 세포의 지표를 찾고 싶다.벡터와 벡터 배열의 교차점을 MATLAB에서 찾는다.
1
A
답변
1
cellarr
가정하면이 방법은 당신을 위해 작동하는지 확인, 입력 셀 어레이 할 수 -
%// Find intersecting elements for each cell
int_idx = cellfun(@(x) intersect(x,as),cellarr,'UniformOutput', false)
%// Find non empty cells that denote intersecting cells.
%// Then, find their row and column indices
[row_ind,col_ind] = find(~cellfun('isempty',int_idx))
이 ismember
또 다른 방법은 각 셀 간의 일치를 찾을 수 및 세포 내 any
일치하는 경우, 그것의 인덱스를 찾을 수 -
[row_ind,col_ind] =find(cell2mat(cellfun(@(x) any(ismember(x,as)),cellarr,'un', 0)))
그리고 또 다른 -
%// Vertically concatenate all numeric array from cells
vertcat_cells = vertcat(cellarr{:})
%// Get all good matches
matches = any(any(bsxfun(@eq,vertcat_cells,permute(as,[1 3 2])),2),3)
%// Reshape matches into the size of cellarr and get indices of matches
[row_ind,col_ind] = find(reshape(matches,size(cellarr)))
셀 배열의 각 셀은 '1 x 3'숫자 배열입니까? – Divakar
예, 수치 배열입니다 – joanna
그리고 'intersect'로, 대신'평등 '을 의미하지 않습니까? 아니면 교차 어떻게 정의하겠습니까? – Divakar