I'm making a code for calculating the area and perimeter of the circle, with plotting, this uses GUI, Is my code correct?

4 visualizzazioni (ultimi 30 giorni)
function varargout = AREAANDPERIMETERSOLVER(varargin) % AREAANDPERIMETERSOLVER MATLAB code for AREAANDPERIMETERSOLVER.fig % AREAANDPERIMETERSOLVER, by itself, creates a new AREAANDPERIMETERSOLVER or raises the existing % singleton*. % % H = AREAANDPERIMETERSOLVER returns the handle to a new AREAANDPERIMETERSOLVER or the handle to % the existing singleton*. % % AREAANDPERIMETERSOLVER('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in AREAANDPERIMETERSOLVER.M with the given input arguments. % % AREAANDPERIMETERSOLVER('Property','Value',...) creates a new AREAANDPERIMETERSOLVER or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before AREAANDPERIMETERSOLVER_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to AREAANDPERIMETERSOLVER_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help AREAANDPERIMETERSOLVER % Last Modified by GUIDE v2.5 11-Apr-2021 09:51:53 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @AREAANDPERIMETERSOLVER_OpeningFcn, ... 'gui_OutputFcn', @AREAANDPERIMETERSOLVER_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 % End initialization code - DO NOT EDIT % --- Executes just before AREAANDPERIMETERSOLVER is made visible. function AREAANDPERIMETERSOLVER_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to AREAANDPERIMETERSOLVER (see VARARGIN) % Choose default command line output for AREAANDPERIMETERSOLVER handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes AREAANDPERIMETERSOLVER wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = AREAANDPERIMETERSOLVER_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; function edit1_Callback(hObject, eventdata, handles) radius=str2num(get(handles.edit1, 'String')); handles.radius=radius; guidata(hObject, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in btn_calculate. function btn_calculate_Callback(hObject, eventdata, handles) radius=handles.radius; area=pi * radius * radius; peri=2 * pi * radius; set(handles.edit2, 'string', area); set(handles.edit3, 'string', peri); % hObject handle to btn_calculate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in btn_exit. function btn_exit_Callback(hObject, eventdata, handles) delete(handles.figure1) % hObject handle to btn_exit (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in plot_button. function plot_button_Callback(hObject, eventdata, handles) edit1 = str2num(get(handles.edit1, 'String')); edit3 = str2num(get(handles.edit2, 'String')); x = edit1:edit3 ; y = x.^2 - 2 ; axes(handles.axes1); plot(x,y,'-square') grid on % hObject handle to plot_button (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

Risposte (1)

BhaTTa
BhaTTa il 11 Mar 2025
Hey @Carlo Dipus, To create an app in MATLAB App Designer that calculates the area and perimeter of a circle and also plots the circle, you can follow the steps below. I'll provide you with a simple example of how you could set this up.Steps to Create the App:
  1. Open MATLAB App Designer: Start MATLAB and open App Designer by typing appdesigner in the Command Window.
  2. Create a New App: Click on "New" to start a new app.
  3. Design the UI: Drag and drop the following components onto your app canvas:
  • A Numeric Edit Field for the radius input.
  • Two Labels to display the calculated area and perimeter.
  • An Axes component to plot the circle.
  • A Button to trigger the calculation and plotting.
4. Write the Code: Below is a sample code snippet that you can use in the ButtonPushed callback function for your button.
% Button pushed function: CalculateButton
function CalculateButtonPushed(app, event)
% Get the radius from the edit field
radius = app.RadiusEditField.Value;
% Calculate area and perimeter
area = pi * radius^2;
perimeter = 2 * pi * radius;
% Display the results
app.AreaLabel.Text = sprintf('Area: %.2f', area);
app.PerimeterLabel.Text = sprintf('Perimeter: %.2f', perimeter);
% Plot the circle
theta = linspace(0, 2*pi, 100);
x = radius * cos(theta);
y = radius * sin(theta);
% Clear previous plot and plot new circle
cla(app.UIAxes);
plot(app.UIAxes, x, y, 'b-', 'LineWidth', 2);
axis(app.UIAxes, 'equal');
grid(app.UIAxes, 'on');
title(app.UIAxes, 'Circle Plot');
xlabel(app.UIAxes, 'X');
ylabel(app.UIAxes, 'Y');
end
I have created the app and have attached the Design and APP view for your reference:

Categorie

Scopri di più su Argument Definitions in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by