Я хочу извлечь данные из каждой итерации в каждую строку таблицы, которую я использовал, как показано ниже:
set(handles.tableIteration,'data',vars)
Но он получил только последние значения из последней итерации в первая строка таблицы? Зачем? Как я могу получить все значения в каждой итерации в таблице?
Интерфейс
% --- Executes on button press in btnSolve.
function btnSolve_Callback(hObject, eventdata, handles)
% hObject handle to btnSolve (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
syms x
func = handles.editEquation.String;
S = vectorize(char(func)); % For Signs Like %,^,&,.
f = str2func(['@(x) ', func]);
a = str2double(handles.editBeginning.String);
b = str2double(handles.editEnd.String);
n = str2double(handles.editMaximumIteration.String);
error = str2double(handles.editError.String);
%Bisection Method
if f(a)*f(b) > 0
disp('f(a)*f(b) must be less than zero');
else
fx = 2*error;
num = 0;
while(num < n && abs(fx) > error)
fa = f(a);
x = (a+b)/2;
fx = f(x);
if (sign(fx) == sign(fa))
%Retrieving the data to the table
vars = {num2str(a),num2str(b),num2str(x), num2str(fx)};
set(handles.tableIteration,'data',vars)
a = x;
else
%Retrieving the data to the table
vars = {num2str(a),num2str(b),num2str(x), num2str(fx)};
set(handles.tableIteration,'data',vars)
b = x;
end
num = num + 1;
end
end
handles.btnPlot.Enable = 'on';