Вот три идеи, которые нужно попробовать:
Во-первых, я иногда сталкиваюсь с проблемой, когда функция, вызываемая из командной строки, является предыдущей версией.Убедитесь, что вы сохранили файл.Например, если вы изначально написали файл с первой строкой
function [ x, y, true_HF, max_F ] = main(other_variable, HF)
Вам нужно было бы сохранить, чтобы вызвать main (10), в противном случае вы получите неопределенное HF-сообщение
Вторая возможность: если вы повторно сохранили ее, то убедитесь, что редактируемая копия находится в текущем каталоге командного окна.Несколько функций с одинаковым именем, разделенных на разные папки, могут привести к неожиданному поведению.Просто имейте это в виду, если вы работаете, например, с ~ / new_function / main.m, а также с ~ / old_function / main.m.
Наконец, вы можете проверить, является ли вызов fzeroдопустимо, если внести следующие изменения только в целях тестирования:
function [ x, y, true_HF, max_F ] = main(HF)
%% <- "%%" starts a new cell in the program
HF = 10 % type this in for testing purposes
% commented out because we are going to evaluate the code inside the current workspace
% global Data
% Data = [];
close all
true_HF = fzero ( diff_L, HF ); % diff_L will have to be in the current workspace variables
[x,y] = find_xy ( true_HF );
final_graphs()
max_F = max_force ( y, true_HF );
%% <- end the cell
end
Теперь, когда курсор находится между двумя знаками «%%», нажмите ctrl-return.Это позволит оценить код в ячейке (код между двумя "%%").
Сообщите нам о вашем прогрессе.
- Эндрю