Описание тега bsxfun

A versatile and useful Matlab command for applying element-by-element binary operation to two arrays with singleton expansion enabled.
1 ответ

Оптимизация кода, который использует repmat и bsxfun

Я написал ниже код для расчета матрицы: vec0=repmat(vec,1,9); triw = (bsxfun(@times,vecO(1,:)',yc1)-bsxfun(@times,vecO(2,:)',xc1)).*(bsxfun(@times,vecO(2,:)',yc1)+bsxfun(@times,vecO(1,:)',xc1)); vec представляет собой матрицу размером 2 на 900 и xc1…
20 сен '17 в 16:36
3 ответа

Как суммировать части матрицы разных размеров, не используя для циклов?

У меня есть относительно большая матрица NxN (N~20000) и вектор Nx1, идентифицирующий индексы, которые должны быть сгруппированы вместе. Я хочу суммировать части матрицы, которая в принципе может иметь разное количество элементов и несмежных элемент…
27 июн '18 в 10:21
1 ответ

Векторизация тройной петли - MATLAB

У меня есть следующий большой, очень неэффективный цикл. P is a [2000 x 200 x 5] matrix D is a [2000 x 200 x 5] matrix S is a [200 x 1005] matrix PS is a [2000 x 1000 x 5] matrix Я хочу вычислить следующий цикл: for k=1:2000 for n=1:200 for t=1:5 P(…
2 ответа

Матрицы Matlab разных размеров (индексация, для цикла и bsxfun)

У меня есть две матрицы разных размеров. Давайте просто определим матрицу {a} как a(1:10) <10 x 1> и матрицу {b} как b(6:10) <5 x 1>. Мне нужен цикл for или его эквивалент (bsxfun), который получает разницу между матрицей {a} и {b}, код будет повтор…
14 июн '12 в 06:35
1 ответ

Создать третью матрицу в MATLAB из комбинации двух других матриц

У меня есть два выражения в MATLAB, которые представляют матрицу 365x24. Первое выражение имеет 10, 365x24 матриц и поэтому PV_power_output(:,:,K) и второе выражение, которое снова 365x24, но с тремя возможными матрицами, поэтому WT_energy_supply(:,…
11 май '12 в 18:07
0 ответов

MATLAB - Аппроксимация интеграла с полусферной областью с выборочными данными

Неотъемлемая часть уравнения рендеринга выполняет интеграл в диапазоне полусферы (относительно телесного угла).Я могу сгенерировать образцы, которые несут значение соответствующего интеграла с этим кодом: n = 10; rho_s = 0.5; rho_d = 0.5; light_phi …
03 июн '13 в 13:45
1 ответ

Можно ли заменить bsxfun на более быструю работу?

У меня есть тысяча звонков в этой строке кода idx=sub2ind(size(I),x,y); A=bsxfun(@times,bsxfun(@times, a, d),I(idx)); B=bsxfun(@times,bsxfun(@times, b, d),I(idx)); C=bsxfun(@times,bsxfun(@times, b, c),I(idx)); D=bsxfun(@times,bsxfun(@times, a, c),I(…
25 май '17 в 02:02
1 ответ

Как векторизовать цикл двойной зависимости в Matlab?

У меня есть функция цикла, внутренний цикл которой зависит от значения вашего внешнего цикла. for jj = 1:500 for ii = jj:500 Gamma(ii,jj) =mod( ii-jj, 255); end end Я ищу способ сделать код максимально быстрым: векторизованным или bsxfun. Сейчас я и…
07 окт '17 в 13:11
1 ответ

Строка-нормализует разреженную матрицу в нулевое среднее в Matlab

У меня есть большая m *n разреженная матрица Y. Я хотел бы нормализовать каждую строку Y, чтобы каждая строка имела нулевое среднее значение. Я впервые попробовал это. Но среднее значение каждой строки также вычитается из нулевых записей, а это не т…
13 сен '12 в 00:51
2 ответа

Извлечение фиксированных объемов данных из массива на основе списка индексов

У меня есть массив a=1:20 и ряд индексов, которые указывают, где я хочу начать извлекать данные: i=[4,12] Для каждого индекса iЯ хочу этот индекс и следующие четыре (ну, xдействительно) элементы в столбце или строке. Я не буду приближаться к концу м…
13 ноя '12 в 13:03
2 ответа

Получить много трехмерных матриц из двух двумерных матриц (умножение по столбцам)

Есть ли более быстрый способ выполнить следующую операцию без цикла? n = 2; m = 1000; A = rand(n,m); B = rand(n,m); C = zeros(n*n,m); for i = 1 : m tmp = A(:,i) * B(:,i)'; C(:,i) = tmp(:); end В основном мне нужно получить m nxn матрицы с матричным …
2 ответа

Перевод строки Matlab (bsxfun, rdivide) в Python

Я перевожу функцию Matlab на Python. К сожалению, я не эксперт по Matlab, и мне трудно понять некоторые строки, например, такую: a = [[0, 1]; [2, 3]] bsxfun(@rdivide, sqrt(a), a) Я еще не совсем понял, но я думаю, что эта строка r / a для каждой стр…
17 сен '12 в 07:18
1 ответ

Нахождение индексных позиций после умножения -spatial- matrix. bsxfun реализован

Мне нужна помощь в поиске некоторых позиций индекса матрицы и двух векторов после сложного умножения матриц, пожалуйста, потерпите меня и прочитайте то, что у меня есть сначала, мой вопрос подходит к концу. У меня есть две матрицы L1 а также L2: L1 …
17 июн '14 в 06:23
1 ответ

C++ Armadillo:- Эквивалент bsxfun от Matlab

Имеет ли Арамадилло общее назначение, эквивалентное bsxfun из matlab, который выполняет поэлементные операции, например, bsxfun(@minus,A,B)? Я видел, что броненосец имеет поэлементное умножение и деление, но нет признаков того, что обобщенная функци…
28 апр '12 в 11:31
1 ответ

Использование bsxfun с одноэлементным расширением с матрицами трех измерений

Я использую bsxfun векторизовать операцию с одноэлементным расширением между матрицами размеров: MS: (nms, nls) KS: (nks, nls) Операция представляет собой сумму абсолютных разностей между каждым значением MS(m,l) с m в 1:nms а также l в 1:nlsи кажды…
13 янв '16 в 21:52
3 ответа

Как мне перевести этот "редкий" вызов Matlab bsxfun на R?

&gt;&gt; A = sparse([1,2,3,4,5]) A = (1,1) 1 (1,2) 2 (1,3) 3 (1,4) 4 (1,5) 5 &gt;&gt; B = sparse([1;2;3;4;5]) B = (1,1) 1 (2,1) 2 (3,1) 3 (4,1) 4 (5,1) 5 &gt;&gt; bsxfun(@times, A, B) ans = (1,1) 1 (2,1) 2 (3,1) 3 (4,1) 4 (5,1) 5 (1,2) 2 (2,2) 4 (3,…
28 сен '12 в 20:47
2 ответа

Векторизация: друг или враг? bsxfun/arrayfun, чтобы избежать циклов, преобразования, перестановки, сжатия и т. д.

Этот вопрос связан с этим вопросом и, вероятно, с этим другим. Предположим, у вас есть две матрицы A и B. A - M-by-N, а B - N-by-K. Я хочу получить матрицу М-К-К таким образом, чтобы C(i, j) = 1 - prod(1 - A(i, :)' .* B(:, j)), Я попробовал некоторы…
19 ноя '13 в 09:16
2 ответа

Как накапливать количество появлений целочисленной последовательности?

У меня есть последовательность целых чисел, скажем arr = [1,5,2,2,5,1], Мне нужна структура, скажем Counter, это может сказать мне, сколько раз появляется целое число. У меня есть следующий код, но он не будет работать, так как isfield не может быть…
20 дек '13 в 15:53
1 ответ

Вычесть месяцы с указанной даты

Мне нужно вычесть месяцы из заданного DateCol в матрице. Я использовал команду bsxfun(@minus, datevec(date),[0,3,0,0,0,0]) вычесть 3 месяца с указанной даты. Вы можете видеть, что в этом коде есть ошибка. Если дата 1 февраля 2011 г., этот код перехо…
15 ноя '11 в 23:49
1 ответ

Реализация bsxfun при решении мин. задача оптимизации

Мне действительно нужна помощь с этим. Я должен матрицы L1 а также L2, оба (500x3) размера. Прежде всего, я вычисляю разницу каждого элемента каждого столбца L1 от L2 следующее: lib1 = bsxfun(@minus, L1(:,1)',L2(:,1)); lib1=lib1(:); lib2 = bsxfun(@m…
12 июн '14 в 09:33