Я новичок в MatLab и испытываю трудности с использованием результатов моих функций.MatLab - доступ к переменным после выполнения функции с ними
Моя программа загружает файл .mat как объект, а затем для каждой переменной в .mat выполняется анализ. Фактический анализ выполняется функцией, вызываемой в цикле for. Результаты анализа сохраняются функцией в массиве - или они должны быть! В следующем порядке:
function main()
object = matfile('data.mat')
vars = (fieldnames(object))
resultarray = zeros(length(vars))
for index = 1:length(vars)
var = vars(index)
x = object.var
resultarray = analysis(x, index)
end
end
function resultarray = analysis(x, index)
%does stuff to x
resultarray(index) = x
disp(resultarray(index))
end
Проблема в том, что ни одна из моих переменных не видна! Рабочая область пуста. Функция disp() печатает назначенное значение, поэтому я знаю, что функция работает, но как мне получить доступ к resultarray после завершения программы? Я попытался объявить его глобальным в начале main(), который, похоже, ничего не делает. Мой массив должен быть возвращен в main() - как мне его сохранить, чтобы я мог фактически использовать вывод моей функции после завершения программы?
Заранее за вашу помощь.
Редактировать - Я знаю, что область main() различна, но если я избавлюсь от нее, мне сказали, что «определения функций в этом контексте не разрешены». Похоже, по какой-то причине у меня не может быть скрипта и некоторых функций, которые сценарий использует в одном файле.
Worskpace имеет различные сферы чем функция 'main'. Вот почему вы не видите никаких переменных. Удалите 'function main()'. – codeaviator
Если я это сделаю, программа не будет выполнена, поскольку, видимо, у вас не может быть скрипта, за которым следует определение функций в файле matlab. Поэтому я предполагаю, что я действительно спрашиваю, как получить переменные из рабочей области функции в постоянную форму. – Nate
Вы передаете их обратно как возвращаемые значения из функции. – beaker