How to check if all the data in the cell array are the same?
조회 수: 49 (최근 30일)
이전 댓글 표시
There is a variable called 'data'
in a cell array of 1x10
{100} {100} {100} {100} {100} {100} {100} {100} {100} {100} 100 has the same value.
How can I return these 10 data to True or False?
isequal(data(1),data(2),data(3),data(4),data(5),data(6),data(7),data(8),data(9),data(10))
Instead of writing down all the elements like this, I want to make sure that all the data in th
e cell array has the same value even if the size of the cell array changes.
댓글 수: 0
답변 (3개)
Stephen23
2022년 3월 21일
편집: Stephen23
2022년 3월 21일
The simple and very efficient MATLAB approach is to use a comma-separated list:
Avoid approaches which join the data together (e.g. CELL2MAT) or that change data type (e.g. to STRING): they are inefficient, fragile, and will fail for arrays of incompatible sizes, types, or due to loss of information when converting type.
C = repmat({10},1,9)
X = isequal(C{:})
C{1} = 10+eps(10)
X = isequal(C{:})
댓글 수: 0
Chunru
2022년 3월 21일
c = {100, 100, 100, 200} % cell array
cm = cell2mat(c);
same = all(cm == cm(1))
댓글 수: 0
Arif Hoq
2022년 3월 21일
if you want to find every index for true or false
A={100};
B=repmat(A,1,10);
[Lia Locb]=ismember(string(B),string({100}))
댓글 수: 1
참고 항목
카테고리
Help Center 및 File Exchange에서 Cell Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!