Как создать собственную Матрицу? - PullRequest
0 голосов
/ 28 марта 2020

У меня есть 2 матрицы (желтого цвета) следующим образом: матрица 1 (размер 4x1) и матрица 2 (размер 1x6),

Мне разрешено использовать единицу матрицы, обратную матрицу, функцию транспонирования матрицы , квадратная матрица также [умножение, сложение и вычитание, .. вычисление] из 2 вышеуказанных матриц

Редактировать: числа 1 в матрице 4x6 не обязательно = 1 , если они ненулевые

мой вопрос : как мне создать матрицу 4x6, как на изображении? На самом деле, я нахожу это очень похожим на диагональную матрицу, но я все еще застрял, потому что я не мог найти соединение для их развертывания!

Пожалуйста, дайте мне решение. Огромное спасибо! enter image description here Вот другие типы:

enter image description here

1 Ответ

1 голос
/ 28 марта 2020

Если входными векторами являются X и Y, похоже, что выходная матрица Z имеет вид:

 Z(i,j)  =  1 when X(i)=Y(j)
            0 otherwise

Если у вас есть функция поэлементного сравнения, вы можете выполнить этот процесс. Сначала умножьте ваши векторы на вектор единиц, чтобы получить матрицы, в которых повторяются строки или столбцы.

1                      1 1 1 1 1 1
1  * [1 1 1 1 1 1]  =  1 1 1 1 1 1
2                      2 2 2 2 2 2
2                      2 2 2 2 2 2

1                      1 1 1 2 2 2
1  * [1 1 1 2 2 2]  =  1 1 1 2 2 2
1                      1 1 1 2 2 2
1                      1 1 1 2 2 2

Поэлементное сравнение этих двух значений дает желаемый результат.

1 1 1 1 1 1      1 1 1 2 2 2     1 1 1 0 0 0
1 1 1 1 1 1  ==  1 1 1 2 2 2  =  1 1 1 0 0 0
2 2 2 2 2 2      1 1 1 2 2 2     0 0 0 1 1 1
2 2 2 2 2 2      1 1 1 2 2 2     0 0 0 1 1 1
...