2014-11-14 4 views
0

У меня есть две матрицы, такие какBitxor и граф различных значений строк между двумя матрицами

A = 

    0  1  1  0 
    0  0  1  1 
    1  1  1  1 
    1  0  1  0 
    0  0  0  0 

А Б В =

 0  1  1  0 
    1  1  1  1 
    -1 -1 -1 -1 
    1  0  1  0 
    0  0  0  0 

Моя задача состоит в том, как подсчитать количество другой строки по строке между A и B. Например, значения второй строки A и второй строки B различны, а затем увеличение счета 1. Значения в третьей строке A и третьей строке B различаются, тогда значения счета теперь равны 2. Следовательно, суммарные разные значения между строками между A и B равны 2. Как реализовать его с помощью matlab?

Обновление: Поблагодарите Немезиду за первый вопрос. Теперь у меня есть другой вопрос с матрицей A. Я хочу реализовать битксор между строками матрицы A. Для простоты я использую функцию rem с 2. Индекс строк, которые xor вместе хранятся в массиве индексов. Это мой код

index=[1 2 4] % row 1,2,4 will xor 
output=rem(sum(A(index,:)),2); 

Приведенный выше код работает с размером индекса> 1. Когда размер индекса равен 1, что означает, что выходные значения копируются из строки A. Например, index = [1], затем ouput=A(1)=0 1 1 0. Моя проблема в том, что я не могу применить вышеуказанный код, когда размер индекса равен 1. Что происходит? Не могли бы вы изменить для меня?

ответ

2

В основном почти такой же вопрос, как и here, но с небольшим расширением. Подведено, вы можете использовать ответ от @Andrey

ix = sum(sum(abs(A-B),2)~=0) 

ix = 

    2 

О обновлении вашего вопроса. Проблема заключается в том, что sum для одной строки будет использовать 2 в качестве направления (вместо значения по умолчанию 1 это то, что вы хотите), начиная с size(...,1)==1. Вы можете форсировать направление следующим образом:

output=rem(sum(A(index,:),1),2) 
+0

Огромное вам спасибо – user8264

+0

Не могли бы вы рассказать о моем обновленном вопросе о матрице A? Спасибо – user8264

+0

@ user8264 См. Обновление. – Nemesis

Смежные вопросы