Я пытаюсь использовать какой-то оператор if-then-else в анонимной функции, которая сама является частью cellfun
.У меня есть массив ячеек, который содержит несколько двойных матриц.Я хотел бы заменить все положительные числа во всех двойных матрицах на +1, а все отрицательные числа на -1.Мне интересно, могу ли я использовать анонимную функцию вместо того, чтобы кодировать отдельную функцию, которую я затем вызываю из cellfun
?
Вот игрушечный пример:
mat = [2, 2, 0, -2; -2, 0, 0, 2; -2, 2, -2, 2]
cellarray = repmat({mat}, 3, 1)
Яищу что-то вроде этого:
new_cellarray = cellfun(@(x) if x > 0 then x = 1 elseif x < 0 then x = -1, cellarray, 'UniformOutput', false)
Я тоже пробовал это, однако, по-видимому, мне не разрешено помещать знак равенства в анонимную функцию.
new_cellarray = cellfun(@(x) x(x > 0) = 1, cellarray, 'UniformOutput', false)
new_cellarray = cellfun(@(x) x(x < 0) = -1, cellarray, 'UniformOutput', false)