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) - продолжает выполнение программы до следующего брейкпоинта.
Статистические методы