Проверьте ячейки на равенство - PullRequest
0 голосов
/ 08 октября 2018

Я ищу элегантный способ выяснить, полностью ли равны ячейки в массиве ячеек, используя equaln.Вот игрушечный пример:

cellarray{1,1,1} = [true, true, true];
cellarray{1,1,2} = [true, true, true];
cellarray{1,1,3} = [true, true, true];

cellarray{1,2,1} = [true, false, false];
cellarray{1,2,2} = [true, true, false];
cellarray{1,2,3} = [false, false, false];

Я хотел бы проверить, может ли содержимое в ячейках cellarray{1,1,:} считаться равным.На самом деле размер третьего измерения этой матрицы равен 1000.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Одного вызова isequal, передающего список через запятую аргументов для проверки, должно быть все, что вам нужно:

>> isequal(cellarray{1,1,:})

ans =

  logical

   1

>> isequal(cellarray{1,2,:})

ans =

  logical

   0

ЕслиВы хотите обработать NaN значения как равные (они не по умолчанию), а затем просто использовать isequaln вместо.

0 голосов
/ 08 октября 2018
c = cellarray(1,1,:);
allTheSameValues = (nnz(bsxfun(@minus, cell2mat(c), cell2mat(c(1)))) == 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...