2015-04-13 3 views
0

, поэтому я довольно новичок в Matlab. У меня есть некоторые .txt-файлы, которые ограничены табуляцией длиной волны в первом столбце и интенсивностью во втором столбце. Мне нужно нормализовать эти графики, чтобы поместить их все на один и тот же график и сравнить пиковые длины волн. Я попытался найти его, и похоже, что функция normc() может быть тем, что я хочу, но, по-видимому, она не включена в мою студенческую версию Matlab. Есть ли другой/лучший способ сделать это? До сих пор все, что у меня есть, это:Нормализующие участки в matlab

blueled = load('blu_led.txt'); 
greenled = load('green_led.txt'); 
orangeled = load('orange_led.txt'); 
orangeredled = load('orangered_led.txt'); 
redled = load('red_led.txt'); 
irled = load('ir_led.txt'); 

Заранее благодарен!

ответ

1

Я предлагаю начать с функциями max и min (см документацию), а затем использовать что-то вроде этого:

mini=min(blueled); 
blueled=blueled-mini; 
maxi=max(blueled); 
blueled=blueled/maxi; 

Сейчас blueled находится в диапазоне от 0 и 1.

Если вы хотите нормы все переменные, используйте max максимумов и min минимумов.

Внимание: код, указанный выше, будет работать над одним столбцом данных. Вы должны использовать его на blueled (:, 1), если хотите обработать только первый столбец. В противном случае вывод не был бы скаляром, а вектором максимумов столбцов. Конечно, удобно обрабатывать оба столбца сразу, используя первый и второй компоненты вектора, но нужно знать об этом.

+1

Это не поддерживает масштаб. Например: >> blueled = [5 3 4] blueled = >> mini = min (blueled); blueled = blueled-mini; maxi = max (blueled); blueled = blueled./Maxi; >> blueled blueled = 1.0000 0 0.5000 – Austin

+0

ОК, вы правы, я использовал это для немного другой цели. Используйте только 'maxi'-часть, а затем она должна выглядеть как [1 0.6 0.8]. Это оно? –

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