Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 6

Ошибка при запуске правильных программ (интерфейс в среде GUI) gui_mainfcn

16.08.2014, 20:17. Показов 5641. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Матлаб выдает ошибки при запуске правильных программ(интерфейс в среде GUI). Раньше программа работала нормально.
??? Reference to non-existent field 'x0'.

Error in ==> Kursath>pushbutton1_Callback at 28
x(1)=handles.metricdata.x0;

Error in ==> gui_mainfcn at 96


Error in ==> Kursath at 16
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.08.2014, 20:17
Ответы с готовыми решениями:

Ошибка Gui: gui_mainfcn(gui_State, varargin{:});
Доброго времени суток, Написал довольно объемную программу, сделал для нее графический интерфейс в GUI, при работе с этим интерфейсом всё...

Ошибка при запуске программ
Постоянно при запуске любой программы и запуске системы выскакивает эта ошибка...

Ошибка при запуске программ.
Доброго времени суток... Извените меня, незнал где создать эту тему, решил сюда ;) Пожалуйсто помогите! Сегодня я пытался запустить...

6
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
16.08.2014, 20:40
В handles.metricdatа нету поля x0. Больше ничего и не скажешь без правильной программы.
0
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 6
16.08.2014, 20:53  [ТС]
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
function varargout = Kursath(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Kursath_OpeningFcn, ...
                   'gui_OutputFcn',  @Kursath_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function Kursath_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = Kursath_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;
 
 
function pushbutton1_Callback(hObject, eventdata, handles)
x(1)=handles.metricdata.x0;
u=handles.metricdata.xn;
i=1;
h=handles.metricdata.h;
while x(i)<u
    x(i+1)=x(i)+h;
    i=i+1;
end
handles.metricdata.x=x;
f=handles.metricdata.Fx;
y(1)=handles.metricdata.Yo;
for i=2:length(x)
    if i-1>0
        df=f(i)-f(i-1);
    else
        df=0;
    end
    if i-2>0
        d2f=f(i)-2*f(i-1)+f(i-2);
    else
        d2f=0;
    end
    if i-3>0
        d3f=f(i)-3*f(i-1)+3*f(i-2)-f(i-3);
    else
        d3f=0;
    end
    y(i)=y(i-1)+h*f(i-1)+(((h.^2)/2)*df)+(((5*h.^3)/12)*d2f)+(((3*h.^4)/8)*d3f);
end
handles.metricdata.y = y;
guidata(hObject,handles)
axes(handles.axes1);
cla;
plot(x,y);
function pushbutton2_Callback(hObject, eventdata, handles)
e(1,:)=handles.metricdata.x;
e(2,:)=handles.metricdata.y;
d=uiputfile('*.txt','Save Workspace As');
dlmwrite(d,e,'delimiter', '\t', 'precision', 6);
 
function pushbutton3_Callback(hObject, eventdata, handles)
initialize_gui(gcbf, handles, true);
function initialize_gui(fig_handle, handles, isreset)
if isfield(handles, 'metricdata') && ~isreset
    return;
end
handles.metricdata.x0 = 0;
handles.metricdata.xn = 0;
handles.metricdata.h = 0;
handles.metricdata.Fx = 0;
handles.metricdata.Yo = 0;
set(handles.Yo, 'String', handles.metricdata.Yo);
set(handles.x0, 'String', handles.metricdata.x0);
set(handles.xn,  'String', handles.metricdata.xn);
set(handles.h,  'String', handles.metricdata.h);
set(handles.Fx,  'String', handles.metricdata.Fx);
cla;
 
function Yo_Callback(hObject, eventdata, handles)
Yo = str2num(get(hObject, 'String'));
handles.metricdata.Yo = Yo;
guidata(hObject,handles)
 
function Yo_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function h_Callback(hObject, eventdata, handles)
h = str2num(get(hObject, 'String'));
handles.metricdata.h = h;
guidata(hObject,handles)
 
function h_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function Fx_Callback(hObject, eventdata, handles)
F = get(hObject, 'String');
Fx=inline(F);
handles.metricdata.Fx = Fx;
guidata(hObject,handles)
 
function Fx_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function xn_Callback(hObject, eventdata, handles)
xn = str2num(get(hObject, 'String'));
handles.metricdata.xn = xn;
guidata(hObject,handles)
 
function xn_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function x0_Callback(hObject, eventdata, handles)
x0 = str2num(get(hObject, 'String'));
handles.metricdata.x0 = x0;
guidata(hObject,handles)
 
function x0_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function pushbutton4_Callback(hObject, eventdata, handles)
Close
 
function pushbutton5_Callback(hObject, eventdata, handles)
helpdlg('   Данная программа позволяет решить обыкновенное дифференциальное уравнение многошаговым методом Адамса. Имея в распоряжении отрезок, на котором будет считаться дифференциал, закон распространения значений правой части и начальное значение дифференциального уравнения. Например: имеется функция f(x), х0, шаг, хn и Y(x0), многошаговый метод Адамса позволяет вычислить последующие значения дифференциального уравнения на заданном отрезке.                                                             ДЛЯ РАСЧЕТА НЕОБХОДИМО:                                                                                               1)  Ввести поле "x0" начальное значения x от которого начнутся вычисления, в поле "xn" ввести последнее значение x, до которого будут ввестись подсчеты и ввести в поле "h" шаг, который будет показывать точность измерений. В поле "Yo" записываем первое значение дифференциального уравнения при x0.                                                                     2)     В поле f(x) введите закон распределения правой части дифференциального уравнения (не забудьте перед / и ^ ставить. Закон распределения нужно вводить через переменную x.)                                                                                                                                     3)  Нажать на кнопку "Рассчитать" (искомое значение отобразиться на графике).                                                        ПРИМЕЧАНИЕ: При нажатии на кнопку "Обнулить все поля", во всех полях будут значения равные нулю, т.е. произойдет сброс введенных данных. Можно сохранить результат, нажав на кнопку "Сохранить", при её нажатии появится "окно-проводник", где можно по своему усмотрению выбрать место для сохранения и имя сохраняемого файла. При нажатии кнопки "Выход" программа заканчивает свою работу и выходит из неё.','Справка');
0
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
17.08.2014, 01:37
Наверно, надобно обновить данные в структуре handles в самом конце функции initialize_gui
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function initialize_gui(fig_handle, handles, isreset)
if isfield(handles, 'metricdata') && ~isreset
    return;
end
handles.metricdata.x0 = 0;
handles.metricdata.xn = 0;
handles.metricdata.h = 0;
handles.metricdata.Fx = 0;
handles.metricdata.Yo = 0;
set(handles.Yo, 'String', handles.metricdata.Yo);
set(handles.x0, 'String', handles.metricdata.x0);
set(handles.xn,  'String', handles.metricdata.xn);
set(handles.h,  'String', handles.metricdata.h);
set(handles.Fx,  'String', handles.metricdata.Fx);
cla;
guidata(fig_handle,handles)

Close в функции pushbutton4_Callback скорее всего пишется с маленькой буквы.
axes(handles.axes1); в функции pushbutton1_Callback не понятно что означает. Вы нигде в программе не задавали поле axes1
1
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 6
17.08.2014, 09:53  [ТС]
Ошибка:
??? Previously accessible file "C:\Program Files (x86)\MATLAB\R2009b\toolbox\matlab\guide \gui_mainfcn.m" is now inaccessible.

Error in ==> Kursath at 16
gui_mainfcn(gui_State, varargin{:});
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
function varargout = Kursath(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Kursath_OpeningFcn, ...
                   'gui_OutputFcn',  @Kursath_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function Kursath_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = Kursath_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;
 
 
function pushbutton1_Callback(hObject, eventdata, handles)
x(1)=handles.metricdata.x0;
u=handles.metricdata.xn;
i=1;
h=handles.metricdata.h;
while x(i)<u
    x(i+1)=x(i)+h;
    i=i+1;
end
handles.metricdata.x=x;
f=handles.metricdata.Fx;
y(1)=handles.metricdata.Yo;
for i=2:length(x)
    if i-1>0
        df=f(i)-f(i-1);
    else
        df=0;
    end
    if i-2>0
        d2f=f(i)-2*f(i-1)+f(i-2);
    else
        d2f=0;
    end
    if i-3>0
        d3f=f(i)-3*f(i-1)+3*f(i-2)-f(i-3);
    else
        d3f=0;
    end
    y(i)=y(i-1)+h*f(i-1)+(((h.^2)/2)*df)+(((5*h.^3)/12)*d2f)+(((3*h.^4)/8)*d3f);
end
handles.metricdata.y = y;
guidata(hObject,handles)
axes(handles.axes1);
cla;
plot(x,y);
function pushbutton2_Callback(hObject, eventdata, handles)
e(1,:)=handles.metricdata.x;
e(2,:)=handles.metricdata.y;
d=uiputfile('*.txt','Save Workspace As');
dlmwrite(d,e,'delimiter', '\t', 'precision', 6);
 
function pushbutton3_Callback(hObject, eventdata, handles)
initialize_gui(gcbf, handles, true);
function initialize_gui(fig_handle, handles, isreset)
if isfield(handles, 'metricdata') && ~isreset
    return;
end
handles.metricdata.x0 = 0;
handles.metricdata.xn = 0;
handles.metricdata.h = 0;
handles.metricdata.Fx = 0;
handles.metricdata.Yo = 0;
set(handles.Yo, 'String', handles.metricdata.Yo);
set(handles.x0, 'String', handles.metricdata.x0);
set(handles.xn,  'String', handles.metricdata.xn);
set(handles.h,  'String', handles.metricdata.h);
set(handles.Fx,  'String', handles.metricdata.Fx);
cla;
guidata(fig_handle,handles)
 
function Yo_Callback(hObject, eventdata, handles)
Yo = str2num(get(hObject, 'String'));
handles.metricdata.Yo = Yo;
guidata(hObject,handles)
 
function Yo_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function h_Callback(hObject, eventdata, handles)
h = str2num(get(hObject, 'String'));
handles.metricdata.h = h;
guidata(hObject,handles)
 
function h_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function Fx_Callback(hObject, eventdata, handles)
F = get(hObject, 'String');
Fx=inline(F);
handles.metricdata.Fx = Fx;
guidata(hObject,handles)
 
function Fx_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function xn_Callback(hObject, eventdata, handles)
xn = str2num(get(hObject, 'String'));
handles.metricdata.xn = xn;
guidata(hObject,handles)
 
function xn_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function x0_Callback(hObject, eventdata, handles)
x0 = str2num(get(hObject, 'String'));
handles.metricdata.x0 = x0;
guidata(hObject,handles)
 
function x0_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function pushbutton4_Callback(hObject, eventdata, handles)
Close
 
function pushbutton5_Callback(hObject, eventdata, handles)
helpdlg('   Данная программа позволяет решить обыкновенное дифференциальное уравнение многошаговым методом Адамса. Имея в распоряжении отрезок, на котором будет считаться дифференциал, закон распространения значений правой части и начальное значение дифференциального уравнения. Например: имеется функция f(x), х0, шаг, хn и Y(x0), многошаговый метод Адамса позволяет вычислить последующие значения дифференциального уравнения на заданном отрезке.                                                             ДЛЯ РАСЧЕТА НЕОБХОДИМО:                                                                                               1)  Ввести поле "x0" начальное значения x от которого начнутся вычисления, в поле "xn" ввести последнее значение x, до которого будут ввестись подсчеты и ввести в поле "h" шаг, который будет показывать точность измерений. В поле "Yo" записываем первое значение дифференциального уравнения при x0.                                                                     2)     В поле f(x) введите закон распределения правой части дифференциального уравнения (не забудьте перед / и ^ ставить. Закон распределения нужно вводить через переменную x.)                                                                                                                                     3)  Нажать на кнопку "Рассчитать" (искомое значение отобразиться на графике).                                                        ПРИМЕЧАНИЕ: При нажатии на кнопку "Обнулить все поля", во всех полях будут значения равные нулю, т.е. произойдет сброс введенных данных. Можно сохранить результат, нажав на кнопку "Сохранить", при её нажатии появится "окно-проводник", где можно по своему усмотрению выбрать место для сохранения и имя сохраняемого файла. При нажатии кнопки "Выход" программа заканчивает свою работу и выходит из неё.','Справка');
 
function y_Callback(hObject, eventdata, handles)
set(handles.y, 'String', mat2str(y));
 
function y_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
0
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
17.08.2014, 12:45
И? Вы смотрели этот путь и нашли там указанный файл?

обновлять пути будет долго 1-2 минуты (если не получится разбирайтесь с функцией rehash)
Ваша программа раньше успешно работала на этом же компьютере на котором вы её запускаете?
0
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 6
17.08.2014, 14:39  [ТС]
да, все программы, которые раньше работали, не запускаются из-за такой ошибки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.08.2014, 14:39
Помогаю со студенческими работами здесь

Текстовая ошибка при запуске программ
При запуске некоторых программ и приложений в серой рамочке выпрыгивает ошибка с текстом The setap controller has encountered a...

Ошибка при запуске некоторых программ
При запуске некоторых программ выдает такую ошибку.Что делать?ОС Windows 10 x64

Размер компонентов GUI при запуске jar больше чем при запуске в IDE
Вообщем есть такая вот проблема: Еще с давних пор когда начинал изучать Swing заметил, что при построении файла jar(работаю в Netbeans)...

116 ошибка при запуске игр, и программ
Я в компьютерах почти не шарю, вот и решил обратится за помощью. Вылезает ошибка 116(Синий экран) при запуске игр, программ, запускал...

ошибка при запуске программ с модулем Graph
Люди подскажите пожалуйста что значят эти ошибки и как с ними бороться(появляются только при модуле graph):


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru