#matlab
#matlab
Вопрос:
a = 1:20;
b = [2,5;12,16];
Я ищу способ извлечения элементов в a
пределах диапазона b
строк. Я пытался
bsxfun(@(col1,col2) a(col1:col2), b(:,1), b(:,2))
но это игнорирует все, кроме первой строки b
.
Это результат, который я ожидаю
2 3 4 5 12 13 14 15 16
Ответ №1:
Эта bsxfun
функция использует значения, определенные в каждой соответствующей строке a
, для создания двух разных векторов и их объединения.
a = 1:20;
b = [2,5;12,16];
Range_1 = b(1,:);
Range_2 = b(2,:);
bsxfun(@(Row_1,Row_2) [a(Row_1(1):Row_1(2)) a(Row_2(1):Row_2(2))], Range_1, Range_2)