Matlab - Problema en el scriptf cuando se llama a una función (.m)

 
Vista:
sin imagen de perfil

Problema en el scriptf cuando se llama a una función (.m)

Publicado por Mateo Ale (7 intervenciones) el 09/08/2017 19:10:52
Saludos:
Realice una función en la cual ingreso una argumento de entrada (radio) de un circulo y como argumento de salida me calcula el (Área y el perímetro), las variables están condicionadas para que el valor del radio sea mayor a cero, si ingreso un radio con valor negativo aparezca ERROR, y si no ingreso el argumento de entrada me gráfica el circulo por defecto.
Código de la función:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function [Ac,Pc]=circulo_ap(r)
if  nargin==1 && r>0
Ac=pi*r^2
Pc=2*pi*r
elseif nargin==0
r=2;
teta=(0:0.01:2*pi);
x=r.*cos(teta);
y=r.*sin(teta);
hold on
figure(gcf)
fill(x,y,'r')
axis([-3,3,-3,3])
axis equal
hold off
else
     msgbox('Error Vuelva a Intentarlo')
end
end

Al parecer todo esta bien, cumple con las condiciones de entrada
Ahora realice un archive Script que llame a la función creada.
Archivo Script

1
2
3
4
clear
clc
r=input('Ingrese el Radio del circulo:  ')
circulo_ap(r)

El problema surge cuando mando a correr el Script
Si ingreso un radio igual a CERO cumple la condición y me sale ERROR
Si ingreso un valor de radio mayor que CERO, me calculo el área y el perímetro.
Si ingreso un radio con valor negativo, cumple la condición y me sale ERROR
PERO, si no ingreso nada en el (INPUT) por condición debería salir el gráfico del circulo pero NO ES ASÍ.

Que solución me podrían dar o sugerir...............GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder