Как применить двоичную функцию к массиву ячеек и двойному массиву - PullRequest
1 голос
/ 25 мая 2020

У меня есть ячейка массивов (например, символьных векторов), которая принимает позиционную индексацию, и двойной массив, содержащий положительные целые числа, которые должны быть индексами массива. Есть ли собственная функция, которая может применять индексы к ячейке массивов?

Например,

A={'abc','asdfc','aojcdfw','casd'};
B=[3,5,4,1];

Есть ли собственная функция, которая может выводить следующее?

{A{1}(B(1):end), A{2}(B(2):end), A{3}(B(3):end), A{4}(B(4):end)}

Ответы [ 2 ]

3 голосов
/ 25 мая 2020

extractAfter делает именно это.

>> extractAfter(A, B-1)
ans =
  1×4 cell array
    {'c'}    {'c'}    {'cdfw'}    {'casd'}
1 голос
/ 25 мая 2020

Вы можете сделать это с помощью cellfun. Для cellfun все входные данные должны быть ячейками, поэтому сначала я конвертирую B в ячейку, используя num2cell.

cellfun(@(a,b) a(b:end), A, num2cell(B), 'UniformOutput', false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...