2 подписчика

Обработка экспериментальных данных в Matlab

146 прочитали

Во многих научных исследованиях и любительских экспериментах требуется обработать большие объемы цифровых данных, для этой задачи лучше всего подойдет Матлаб. Особенно когда пытаться закинуть около 10 тысяч цифр в Excel совсем не вариант, Матлаб становится практически единственным удобным вариантом.

Допустим, у нас есть куча данных с Ардуино записанных в файл при помощи программы Terminal.

Для загрузки данных нужно перетащить файл с данными в область «Workspace» на главном окне программы Matlab.

Загрузка файла с данными
Загрузка файла с данными

После чего появится окно, где нужно выделить нужные данные и выбрать тип массива.

Настройка массива данных
Настройка массива данных

В этом появившемся окне необходимо:

1. Выделить столбец с цифрами таким образом, чтобы в выделенную зону не попадал текст, в случае если в файле с данными 2 и более столбцов, то их нужно выделить аналогичным образом все вместе.

2. В графе «IMPORTED DATA» выбрать тип импортируемых данных «Numeric Matrix». В изменении остальных настроек нет необходимости.

3. Импортировать в Matlab выделенные данные, нажав на зеленую галочку «Import Selection».

4. После импорта данных (может занимать до нескольких минут) закрыть окно импорта.

5. Если все прошло без ошибок, то в области «Workspace» должен появиться массив данных с тем же именем что и перетаскиваемый файл с данными. При необходимости массив можно переименовать, дважды кликнув по его названию.

Результат импорта это массив с данными в «Workspace»
Результат импорта это массив с данными в «Workspace»

Для построения графика нужно последовательно ввести ряд команд, наиболее удобно делать это при помощи скрипта. Для этого нужно проделать следующие действия:

6. Создадим новый скрипт нажав кнопку «New Script» в домашней вкладке.

Создание нового скрипта
Создание нового скрипта
Результат выполнения скрипта
Результат выполнения скрипта

7. Введите текст скрипта для построения графика.

% данные приходят с датчика 100 раз в секунду, поэтому
% разделим каждый элемент массива на 100 чтобы
% перевести номер замера во время
t = (1:length(test(:, 1)))./100; % массив времени
plot(t, test(:, 1)); % строим график
grid on % создадим сетку на графике
xlabel('Время, с'); % подпись оси Х
ylabel('Напряжение, мВ'); % подпись оси

8. Запустите скрипт нажав кнопку «Run» во вкладке «EDITOR». После этого введенные команды будут последовательно выполняться.

9. Результат выполнения приведенного в примере скрипта – график с подписанными осями. Полученный график можно сохранить в формате «png» и вставить в документ или презентацию.

Краткое описание команд (более подробное и полное описание команд с примерами есть в справке встроенной в Matlab или в интернете):

test(:, 1) – вывод первого столбца массива test. Формат вывода элементов массива «название(номер строки, номер столбца)», в примере знак «:» обозначает что мы выводим все элементы столбца 1.

length(test(:, 1)) – выводит количество элементов массива, в данном случае количество элементов первого столбца массива.

1:length(test(:, 1)) – эта команда создает массив чисел от 1 до значения длинны массива, формируя тем самым массив значений времени привязанных к результатам измерений (экспериментальных данных). Шаг этого массива 1. К примеру, если необходимо получить меньший шаг, например 0.01, то используют следующий формат записи: «1:0.01:10».

plot(t, test(:, 1)) – команда строит график, в данном случае по оси Х будет время (массив времени «t»), а по оси Y – экспериментальные данные (весь первый столбец массива «test(:, 1)»). При этом количество элементов в этих массивах должно быть одинаково.

grid on - команда создает координатную сетку на графике.

Команды xlabel('Время, с') и ylabel('Напряжение, мВ') позволяют создать подписи осей.

#Matlab, #график, #рисунок