Автоматизированный подход

Eжели создаётся программа (скрипт) не для конкретного случая, а для работы с разными данными (например, разное число классов, разные размерности данных, ещё чего-нибудь) то каждый раз надобно будет изменять некоторые переменные по всей программе. Этот процесс можно автоматизировать. Основная требующаяся функция - eval(). Аргументом функции является текстовая строка, и функция просто выполняет то, что записано в этой строке. Например:

string_command = 'a = 10+15'; %команда в виде текста

eval(string_command)       %выполнить команду

В результате получим:

a =

25

В чём суть? В том, что значение текстовой строки можно изменять во время работы программы и обращаться к разным переменным внутри одного цикла.

Например, ежели есть несколько переменных a_1, a_2, a_3, то для обращения к ним можно использовать цикл:

for i=1:3

  str_cmd = strcat('b = 10 + a_',int2str(i));

eval(str_cmd);

end

Здесь str_cmd - текстовая команда, функция; strcat() - функция, объединяющая несколько строк в одну (str от string - строка, cat от concatenation - объединение). Функция int2str() - переводит численную переменную в переменную типа char, т.е. в строку. Строка 'b = 10 +' - просто некоторое ничего не значащее арифметическое действие, где b - некая переменная. Таким образом, строка str_cmd на первой итерации будет выглядеть как: b = 10 + a_1 и на каждой итерации текстовая команда обращается к разной переменной.

 

Отладка (debug) программ

Зачастую написанная программа не работает как надо с первого раза (да и со второго тоже). Для установления точной причины неправильной работы можно запустить работу в режиме отладки. В этом режиме программа может прерываться в определённых точках кода, которые называются breakpoint, и во время остановок можно отследить как изменяются интересующие переменные. Для установки брейкпоинта достаточно тыкнуть мышкой в столбец, рядом со столбцом номеров строк.

Красная точка означает, что в этой строке установлен брейкпоинт. При запуске (зелёный треуголньик) программа начнёт работу и остановится на строке с брейкпоинтом, в этот момент можно проверить значения всех переменных на этом этапе.

Зелёная стрелка означает текущую строку, на которой остановилась программа. Дальнейшее управление выполнением программы производится с помощью появившихся кнопок (выделены красной рамкой на рисунке выше). Здесь наиболее важными являются: кнопка Step (F10) производит переход на следующую строку и остановку программы, Continue (F5) - продолжает выполнение программы до следующего брейкпоинта.

Статистические методы


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: