У меня есть массив N x 1 A и вы хотите получить матрицу результатов с элементами, которые оценивают функцию f (такую как max) для пар A (i) & A (j) (i, j = 1, ..., N). Матрица результатов будет выглядеть как [f (A (i), A (j))]. У кого-то есть предложения по достижению этого без использования цикла? Также лучше избегать bsxfun, так как bsxfun не реализован в какой-либо программе. TKSпопарно evlaluation без использования цикла
0
A
ответ
1
Использование meshgrid
и arrayfun
:
[ii jj ] = ndgrid(1:N, 1:N); %// generate all combinations of i and j
result = arrayfun(@(n) f(A(ii(n)), A(jj(n))), 1:N^2);
result = reshape(result, length(A)*[1 1]); %// reshape into a matrix
Пример:
N = 3;
A = [4 5 2];
f = @(x,y) max(x,y);
>>[ii jj ] = ndgrid(1:N, 1:N);
result = arrayfun(@(n) f(A(ii(n)), A(jj(n))), 1:N^2);
result = reshape(result, length(A)*[1 1])
result =
4 5 4
5 5 5
4 5 2
0
Если вы не хотите петли и не bsxfun
вы остались с repmat
ra = repmat(A, [1 size(N,1)]);
res = f(ra, ra'); % assuming f can be vectorized over matrices
Смежные вопросы
- 1. Как извлечь попарно диагональ в тензоре в anano без цикла?
- 2. LINQ без использования цикла
- 3. Bash расширения массива попарно
- 4. Vectorize это без использования цикла
- 5. Код анаграммы без использования цикла
- 6. Как отсортировать без использования цикла
- 7. Листинг словаря без использования для цикла
- 8. Несколько запросов MongoDB без использования цикла?
- 9. чтение байтов без использования какого-либо цикла
- 10. Определить значения массива без использования цикла 'for'
- 11. Построить диагональную матрицу без использования для цикла
- 12. Значение сущности списка обновления без использования цикла
- 13. Найти товар в ObservableCollection без использования цикла
- 14. Выполнить функцию несколько раз без использования цикла
- 15. найти 1-ое вхождение без использования цикла
- 16. Найти внутреннее исключение без использования цикла while?
- 17. FileStream.Read - Чтение потока без использования цикла
- 18. использовать переменный индекс без использования цикла
- 19. Изменить объект внутри массива без использования цикла
- 20. Остановка цикла for без использования перерыва
- 21. Извлечение строки из вектора без использования цикла
- 22. Как распечатать факториалы без использования цикла?
- 23. GLFW - держать окно без использования цикла
- 24. Создать подмножество dataframe без использования для цикла
- 25. Элементы массива Multiply без использования цикла
- 26. Проверьте, пуст ли массив без использования цикла?
- 27. Связанный список обратный без использования цикла?
- 28. Сумма без использования цикла в R
- 29. Как построить тик для цикла без использования переменной цикла
- 30. Вывод из вложенного цикла цикла без использования перерыва
Переключите кода петли в ваш вопрос. Прямо сейчас, я действительно не знаю, что вы надеетесь получить в качестве выхода. – KitsuneYMG
результат = нули (N, N); для i, j = 1: N, результат (i, j) = f (A (i), A (j)) – yliueagle