Я делаю флуоресцентную спектроскопию и затем обрабатываю файлы с помощью R. Я хотел бы создать матрицу из 1 и 0 так, чтобы я мог замаскировать линии Рэлея-Тиндаля из матриц возбуждения-эмиссии (EEM).EEMs имеют 44 столбца (возбуждения) и 602 ряда (выбросы).Длины волн возбуждения варьируются от 240 до 455 нм с шагом 5 нм.Длина волны излучения составляет от 300 до 600,5 с шагом 0,5 нм.Результирующая матрица для маскировки должна выглядеть примерно так (это всего лишь небольшой вырез матрицы из матрицы. Фактическая матрица имеет размер 44 * 602):
240 245 250 ... 300 305 310 ... 455
300 1 1 1 ... 0 1 1 ... 1
300.5 1 1 1 ... 1 1 1 ... 1
...
305 1 1 1 ... 1 0 1 ... 1
...
310 1 1 1 ... 1 1 0 ... 1
...
480 0 1 1 ...
...
600 1 1 1 ... 0 1 1 ...
600.5 ...
Когда матрица маскируется(желаемый) создан, я хочу умножить его на фактические значения EEM.Примерно так должно получиться:
corrected_EEM_Intensity <- Mask.Matrix * Sample_EEM
EEMs выглядят так (44 столбца * 602 строки по размеру):
240 245 ... 455
300 202.7 ...
300.5 190.5 ...
... .... ...
600 82.4 ...
600.5 45.9 ...
Так что я хотел бы разделить возбуждениячерез выбросы и наоборот.Если эмиссия является фактором возбуждения и наоборот, в матрице должен быть 0.В других случаях должно быть 1.
Чтобы сделать вещи более сложными, я хотел бы сделать это не только для соответствующих факторов, но и в диапазоне 10 нм.Это означает, что, например, возбуждение 430, разделенное на излучение 440, и возбуждение, разделенное на 450, также должны дать 0.
Матрица реального маскирования должна выглядеть примерно так (в качестве краткого примера):
240 ... 400 ... 455
300 1
300.5 1 ... 1 ... 1
... 1 1 1 1 1
...
390 1 1 0 1 1
... 1 1 0 1 1
400 1 1 0 1 1
...
600
600.5 1 1 1 1 1
Как я могу это сделать?
Я надеюсь, что теперь я более четко понимаю эту проблему.
После долгих исследований и некоторых собственных испытаний я не смог найтиответ на это.Любая прямая помощь или ссылки на другие веб-сайты / сообщения приветствуются.