2016-04-12 7 views
0

У меня есть две матрицы. Один из них - PR1 - единичная матрица и другая обратная идентичная матрица PR2. Описана ссылочная матрица А, которая может быть 5x5 10x10 и т. Д. Согласно этому I1, создается I2. Здесь упоминается матрица 5x5. Логические операции начинаются с AND = PR1 AND PR2, за которым следует Xor = PR1 XOR PR2.Как сделать логические операции между двумя матрицами в matlab

A матрица:

А =

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

I это единичная матрица

PR1 =

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

PR2 =

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

А =

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

Xor =

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

В настоящее время сканирования слева направо каждой строки в А и XOR матриц. Поместите первый 1, как он есть в новой строке, которая находится в матрице R1. Трассировка для второго и операция NOR между первой одной строкой и второй 1 строкой в ​​матрице в матрице (1,5) занимает второе место, поэтому операция NOR между 1-й и 5-й строками помещает ответ в R1matrix. Аналогично, он имеет R1.

R1 =

Теперь заменить R1 на PR2 новый PR2 =

Опять repated же процесс PR1 и PR2 следуют PR1 XOR PR2

А =

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

Xor =

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

В настоящее время сканирования слева направо каждой строки в А и XOR матриц. Поместите первый 1, как он есть в новой строке, которая находится в матрице R1. Трассировка для второго и операция NOR между первой одной строкой и второй 1 строкой в ​​матрице в матрице (1,5) является вторым 1 местом, так что операция NOR между 1-й и 5-й строками помещает ответ в R2matrix.

R2 =

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

проверка всех колонка имеет минимальную один 1 и остановить

+0

И вопрос ...? – kkuilla

+0

Мне это нужно в матовом лабораторном коде –

+0

Вы его искали? [('Логические операции')] (https://uk.mathworks.com/help/matlab/logical-operations.html?s_tid=gn_loc_drop) – kkuilla

ответ

1

PR1 и PR2 такое же, как: PR1 * PR2

С = XOR (A, B)

(source).

Поиск идентификационной матрицы есть встроенная функция. Identity матрица (я считаю, что это так, я не знаю, почему это называется «глаз»)

Вы должны действительно использовать Google, например: «матрица xor matlab». На самом деле не так много думают об этом. Вы, вероятно, приложите больше усилий, чтобы написать свой вопрос.

1

Это довольно прямо вперед

PR1 = eye(size(A,1)); 
PR2 = flip(PR1); 
AND = and(PR1,PR2); 
XOR = xor(PR1,PR2); 

k = find(And~=0,1,'first'); 
R1 = zeros(size(A,1)); 
R1(k) = And(k); 
idx = find(Xor~=0, 1, 'first'); 
R1(idx) = Xor(idx); 

и если вы хотите, чтобы сделать NOR операции для строки 1 и 5-й строки, то вы

R1(1,:) = !(or(A(1,:),A(5,:))) 
R1(2,:) = !(or(A(2,:),A(4,:))) 
R1(4,:) = !(or(A(2,:),A(4,:))) 
R1(5,:) = !(or(A(1,:),A(5,:))) 

PR2 = R1 

здесь повторить процесс, как вам нужно.

+0

Как достичь R1. Здесь, например, я взял 2-й ряд для операции R1. Трассировка слева направо в матрице And & Xor, помещая сначала 1 в место R1 и теперь отслеживая для 2-го 1, она найдена вместо (2,4). Затем выполните операцию NOR между 2-й строкой и 4-й строкой, положив результат в R1. –

+0

надеюсь, что это поможет. – serpentor

+0

Выше должно быть немного изменено. Трассировка выполняется параллельно в обеих матрицах. Средство принимает 1-ю строку в матрице And & Xor параллельно и проверяет 1-й уровень 1 и следует по-прежнему –

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