Find unique values in array
조회 수: 52 (최근 30일)
이전 댓글 표시
Hi,
I have a 7x700 array, theta, with repeated values in each row of the array. I would like to create a new array which is all the unique values in each row of theta. Simplified example of what I mean:
theta=[1 2 3 1 2 3 1 2 3; 4 5 6 4 5 6 4 5 6; 5 4 2 5 4 2 5 4 2]
desired output=[1 2 3; 4 5 6; 5 4 2]
I'm guessing I'd need a for loop to go through all 7 rows and the 'unique' command but I didn't get the right result.
Thank you
댓글 수: 0
답변 (1개)
DGM
2022년 7월 16일
Since there's generally no guarantee that the rows have the same number of unique elements, then I wouldn't assume that would work. Unless you can guarantee that for your specific case, then use a cell array to store the output. Since you didn't say why the result wasn't right, I'm just going to guess.
theta = [1 2 3 1 2 3 1 2 3; 4 5 6 4 5 6 4 5 6; 5 4 2 5 4 2 5 4 2]
nrows = size(theta,1);
T = cell(nrows,1);
for r = 1:nrows
T{r} = unique(theta(r,:),'stable');
end
celldisp(T)
I suppose it's possible to convert the cell array to a numeric array if it turns out to be rectangular.
T = cell2mat(T)
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!