Опишем, что происходит после нажатия на какую-либо из кнопок выбора, какую из серий данных будем вводить. Это кнопки pushbutton1, pushbutton2 и pushbutton3.
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
S=sprintf('%g',1);
set(handles.edit2,'String',S);
S=sprintf('%g',1);
set(handles.edit3,'String',S);
end
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
S=sprintf('%g',1);
set(handles.edit2,'String',S);
S=sprintf('%g',2);
set(handles.edit3,'String',S);
end
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
S=sprintf('%g',1);
set(handles.edit2,'String',S);
S=sprintf('%g',3);
set(handles.edit3,'String',S);
end
При нажатии происходит следующее. Ставятся в окошки, показывающие порядковый номер вводимого элемента данных и номер строки (окна интерфейса), где эти данные отображаются, соответственно единица и порядковый номер от 1 до 3.
Опишем, что происходит после нажатия на кнопку ввода нового элемента в серии экспериментальных данных. Это кнопка pushbutton4.
% --- Executes on button press in pushbutton4. INPUT NEW DATA
function pushbutton4_Callback(hObject, eventdata, handles)
Number=str2double(get(handles.edit2,'String'));
NumberString=str2double(get(handles.edit3,'String'));
if NumberString==1
|
|
Matrix=str2num(get(handles.edit4,'String'));
Matrix(Number)=str2double(get(handles.edit1,'String'));
S=mat2str(Matrix);
set(handles.edit4,'String',S);
end
if NumberString==2
Matrix=str2num(get(handles.edit5,'String'));
Matrix(Number)=str2double(get(handles.edit1,'String'));
S=mat2str(Matrix);
set(handles.edit5,'String',S);
end
if NumberString==3
Matrix=str2num(get(handles.edit6,'String'));
Matrix(Number)=str2double(get(handles.edit1,'String'));
S=mat2str(Matrix);
set(handles.edit6,'String',S);
end
S=sprintf('%g',Number+1);
set(handles.edit2,'String',S);
S=sprintf('%s',' ');
set(handles.edit1,'String',S);
end
Сначала считываются из соответствующих окошек интерфейса номер элемента и номер серии данных, затем, в зависимости от их значений, выбирается соответствующий набор данных в строке в окне интерфейса, считывается функцией str2num преобразующей строку символов в вектор чисел. После этого считывается новый вводимый элемент данных из соответствующего ему окна интерфейса и добавляется к вектору данных.
Потом вектор числовых значений преобразуется функцией mat2str в строку символов. Затем эта строка помещается в соответствующее ей окно интерфейса.
Опишем, что происходит после нажатия на кнопку построения графика. Это кнопка pushbutton5.
% --- Executes on button press in pushbutton5.GRAPHIC
function pushbutton5_Callback(hObject, eventdata, handles)
x1=str2num(get(handles.edit4,'String'));
x2=str2num(get(handles.edit5,'String'));
y=str2num(get(handles.edit6,'String'));
hold on;
subplot(2,2,3);
plot(x1,x2,'k-');
grid on;
title('Fazovoe ravnovesie P.ZH.R. aceton-metanol (1 atm)');
xlabel('Molnie doli acetona v zhidkosti ');
ylabel('Molnie doli acetona v pare');
subplot(2,2,4);
plot(x1,y,'k-',x2,y,'ro');
title('Fazovoe ravnovesie P.ZH.R. aceton-metanol (1 atm)');
xlabel('Molnie doli acetona v zhidkosti (-) i pare (o)');
ylabel('T, C');
grid on;
end
Считываются строки данных из соответствующих окон интерфейса, преобразуются функцией str2num в векторы чисел. Затем определяется функцией subplot что график будет построен в нижнем левом углу интерфейса.
Для этого передаются в функцию subplot аргументы, означающие, что пространство интерфейса разбивается на 2 строки и 2 столбца и вывод идет в тот из фрагментов этого пространства, который считается имеющим номер 3. Это и есть левый нижний угол интерфейса.
|
|
После этого строится функцией plot график. Выводятся подписи к нему и функцией grid on накладывается сетка.
Затем определяется функцией subplot что следующий график будет построен в нижнем правом углу интерфейса.
Для этого передаются в функцию subplot аргументы, означающие, что пространство интерфейса разбивается на 2 строки и 2 столбца и вывод идет в тот из фрагментов этого пространства, который считается имеющим номер 4. Это и есть правый нижний угол интерфейса.
После этого строится функцией plot график. Выводятся подписи к нему и функцией grid on накладывается сетка.
Пример 5. Интерфейс большой программы (Рис.1.72), в котором кнопки открывают окна для ввода матриц данных, приблизительно такие, как в примере 2.
Вводятся данные, затем выполняются действия по их обработке (по нажатию на кнопки ВЫЧИСЛИТЬ и ПОСТРОИТЬ ГРАФИК) и затем они выводятся в панели окон и кнопок, подписанной как Результаты.
Для просмотра матричных результатов надо нажимать на соответствующие кнопки на панели Результаты.
Предусмотрено сохранение в файл и чтение из файла (по нажатию на соответствующую кнопку ОТКРЫТЬ ИЗ ФАЙЛА)
Для построения графика, на панели График предусмотрена возможность выбрать все необходимые настройки графика, как в выше рассмотренных примерах.