У меня есть матрица A(na*7)
и матрица B(nb*7)
. (например, A(16*7)
и матрица B(110*7)
) A и B оба имеют 1 и 0 в качестве контекста.Матричные операции без петли MATLAB
Я хочу выполнить операцию xor между каждой строкой A и каждой строкой B и подсчитать количество 1 в результате и сохранить ее в другой матрице C размером na*nb
.
Я знаю, как это сделать для циклов, но мне интересно, есть ли какой-нибудь элегантный способ сделать это без циклов, чтобы сэкономить скорость.
Например
Если размер A
является 3*2
и размер B
является 4*2
я хочу, чтобы выполнить эти операции:
sum(xor(A(1,:),B(1,:)))
sum(xor(A(2,:),B(1,:)))
sum(xor(A(3,:),B(1,:)))
l--------------l
sum(xor(A(1,:),B(2,:)))
sum(xor(A(2,:),B(2,:)))
sum(xor(A(3,:),B(2,:)))
l--------------l
sum(xor(A(1,:),B(3,:)))
sum(xor(A(2,:),B(3,:)))
sum(xor(A(3,:),B(3,:)))
l--------------l
sum(xor(A(1,:),B(4,:)))
sum(xor(A(2,:),B(4,:)))
sum(xor(A(3,:),B(4,:)))
Тогда я хочу каждый результат будет храниться в каждом C. набор из 3 результатов - один ряд из C
Большое спасибо
вы можете написать команду таким образом, чтобы она параметризовано пожалуйста? –
Нет необходимости, параметры фиксированы. Вам ничего не нужно менять. Учитывая две логические матрицы (A и B), она создаст матрицу C так, как вы указали в вопросе. –
Yeap кажется, что он работает .. Большое спасибо. могу ли я спросить, каков параметр [1 3 2] после A и [3 1 2] после B? –