Получить конкретные ячейки из массива ячеек - PullRequest
0 голосов
/ 10 октября 2018

У меня есть числовой массив размером 1000x1, который имеет значения 0 и 1, называемый conditionArray.У меня есть массив ячеек с именем netNames с таким же размером (1000x1), и его ячейки содержат строковые значения (которые являются именами некоторых сетей).Я хочу извлечь сетевые имена, которые из netNames, у которых бит парного условия равен 1 в conditionArray.Например, если conditionArray (100) равно извлечению его сетевого имени из netNames{100}.

Вывод этого процесса может быть сохранен в строковом массиве или массиве ячеек.Есть ли способы сделать эту операцию с парными операциями, или я должен использовать для этого оператор for?

Ответы [ 2 ]

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

Как я понимаю, у вас есть:

N = 1000;
% an array with 0s and 1s (this generates random 0s and 1s):
conditionArray = randi([0,1],N);
% a cell array with strings (this generates random 5-character strings):
netNames = cell(N);
netNames = cellfun(@(c)char(randi([double('a'),double('z')],1,5)), netNames, 'UniformOutput',false);

Чтобы извлечь элементы из netNames, где conditionArray равно 1, вы можете сделать:

netNames(conditionArray==1)

Это использует логическое индексирование в массив ячеек.

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

Вы должны проверять cellfun в Matlab в любое время, когда хотите манипулировать каждым элементом внутри подвала без использования цикла for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...