Рис.1.71. Варианты построения графиков после ввода массивов данных

Опишем, что происходит после нажатия на какую-либо из кнопок выбора, какую из серий данных будем вводить. Это кнопки 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.

Вводятся данные, затем выполняются действия по их обработке (по нажатию на кнопки ВЫЧИСЛИТЬ и ПОСТРОИТЬ ГРАФИК) и затем они выводятся в панели окон и кнопок, подписанной как Результаты.

Для просмотра матричных результатов надо нажимать на соответствующие кнопки на панели Результаты.

Предусмотрено сохранение в файл и чтение из файла (по нажатию на соответствующую кнопку ОТКРЫТЬ ИЗ ФАЙЛА)

Для построения графика, на панели График предусмотрена возможность выбрать все необходимые настройки графика, как в выше рассмотренных примерах.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: