Мне интересно, если можно использовать двойной bsxfun или что-то подобное. У меня этот кусок кода: N = 5;
prob = [0.1 0.2 0 0.1; 0 0 0.05 0.1; 0.2 0.2 0 0.1];
r = rand(size(prob,1),N);
P = zeros(N
В частности, я пытаюсь создать матрицу ядра из функции ядра, которая принимает векторы в качестве входных данных и производит скаляр в качестве вывода. Тогда матрица ядра является двумерной матрицей т
Почему я могу это сделать: a = [1 2];
b = [3 4];
bsxfun(@(ai,bj) ai + bj, a, b')
% 4 5
% 5 6
Но не так: a = struct('x', {1 2});
b = struct('x', {3 4});
bsxfun(@(ai,bj) ai.x + bj.x, a, b');