필터 지우기
필터 지우기

Unique function cell array conflict

조회 수: 4 (최근 30일)
Brian
Brian 2011년 6월 28일
Matlab is giving me a seemingly conflicting error message. It says that the 'rows' flag is ignored since NewParts is a cell array, however it says that it cannot perform the unique function since NewParts is not a cell array. whos says that NewParts is a cell array. Are there any ways to resolve this conflict?
>> Classification
Warning: 'rows' flag is ignored for cell arrays.
> In cell.unique at 31
In Classification at 103
??? Error using ==> cell.unique at 45
Input must be a cell array of strings.
Error in ==> Classification at 103
UNIQUE_NewParts = unique(NewParts,'rows');
whos
NewParts 2122x21 3330030 cell

채택된 답변

Sean de Wolski
Sean de Wolski 2011년 6월 28일
It's a cell array but not a cell array of strings.
unique({magic(2),magic(2),rand(2)})
Fail, your error message.
unique({'hello world','what''s up','hello world'})
pass.
  댓글 수: 11
Brian
Brian 2011년 6월 29일
Is your [NaN] actually Not A Number? Or is it a string or something? The real problem is that it comes from a blank cell in Excel.
Sean de Wolski
Sean de Wolski 2011년 6월 29일
yes, my nan is _actually_ a nan. I convert it to a string that says nan but it is no longer a nan, it's a string (so unique can be called)

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

추가 답변 (2개)

Brian
Brian 2011년 6월 28일
Thanks for your help Sean de. Since the first column was driving the unique parts, I used this solution.
[B,I,J] = unique(NewParts(:,1));
UNIQUE_NewParts = NewParts(I,:)

Jim Hokanson
Jim Hokanson 2013년 5월 1일
I just stumbled upon this weird behavior recently. See: http://www.mathworks.com/matlabcentral/answers/74169-unique-rows-cell-array-ignored
In summary, a warning is thrown saying that unique will not work with the rows option, but then it proceeds perform unique on all elements anyways, at which point in time it fails due to type inconsistencies.
For others finding this answer, I've submitted a more general FEX submission a few years ago to address this problem: 25917: Unique Rows for a Cell Array

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by