У меня есть матрица, которую я хотел бы сравнить с двумя другими матрицами, чтобы увидеть, содержится ли каждая запись в моей матрице в пределах значений двух других матриц или вне значений. Например, если моя матрица:
> M
[,1] [,2] [,3]
[1,] -0.1278982 0.4600544 1.3271033
[2,] -0.1079272 1.2196851 -0.5240536
[3,] 0.9548449 -0.9979668 -0.6636296
и две другие матрицы, которые у меня есть, это L и U:
> L
[,1] [,2] [,3]
[1,] -0.49416022 1.0992247 -1.2834469
[2,] 0.35491793 0.2460946 1.1411529
[3,] 0.01755317 0.2469062 0.2843848
и
> U
[,1] [,2] [,3]
[1,] -0.84996737 1.0036554 -0.04747612
[2,] 0.35396050 -0.4612527 -1.47341334
[3,] -0.07716839 -1.5921625 1.62187501
Я хотел бы взять каждую запись M и сравнить, чтобы увидеть, содержится ли она в пределах диапазона, заданного соответствующей записью L и U.
Например, для M [1,1] он находится вне диапазона -0,49416022 и -0,84996737, и поэтому я назначу этому сравнению значение 0. С другой стороны, для M [2,3] значение равно -0,5240536 и находится в диапазоне от 1,1411529 до -1,47341334, поэтому при сравнении получается значение 0.
В конечном счете, я хотел бы получить матрицу всех 0 и 1, указывающую, содержались ли записи в M в соответствующих значениях в L и U. Например, если мы назовем эту матрицу M_comparisons, то:
> M_comparisons
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0 0 1
[3,] 0 1 0
У кого-нибудь есть идеи, как я могу сделать это для больших матриц и возможно за очень быстрое время вычислений? Спасибо!