how to prevent user from entering non-numeric values?

4 visualizaciones (últimos 30 días)
amir
amir el 16 de Sept. de 2013
t = 0:0.0001:0.07;
v0 = input('please Enter the value for v0:');
R = input('please Enter the value for resistance:');
C = input('please Enter the value for capacitacne:');
f = input('please Enter the value for frequency:');
m = length(t);
state = 'on';
for A = 1:m
vs(A) = v0 * sin(2*pi*f*t(A));
switch state
case 'on'
vR(A) = vs(A);
iR = vR(A)/R;
iC = 2*pi*f*C*v0*cos(2*pi*f*t(A));
I = iC + iR;
if I<=0
state = 'off';
tA = t(A);
end
case 'off'
vR(A) = v0*sin(2*pi*f*tA)*exp(-(t(A)-tA)/(R * C));
if vs(A) >= vR(A)
state = 'on';
end
end
end
plot (t,vs,':',t,vR,'k')
thank you...
  6 comentarios
amir
amir el 16 de Sept. de 2013
yes,i mean the 4 inputs...this is what i got so far .
Image Analyst
Image Analyst el 17 de Sept. de 2013
I noticed you editied it but didn't get it quite right. See this link : http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup. Basically you don't need to double space your code. all you need to do is to make sure there's a blank line in front of it, then highlight it and click the {}Code button.

Iniciar sesión para comentar.

Respuestas (2)

Image Analyst
Image Analyst el 16 de Sept. de 2013
Hints: ischar() and isnumeric().

Jan
Jan el 16 de Sept. de 2013
Editada: Jan el 16 de Sept. de 2013
v0S = input('please Enter the value for v0:', 's');
v0 = sscanf(v0S, '%g', 1);
if isempty(v0)
error('Invalid value for v0');
end
etc.
Of course you cannot prevent, that the user provides non-numeric values, but you can catch this exception.
  1 comentario
amir
amir el 17 de Sept. de 2013
thanks for help,can you give a brief explanation about what you wrote here...

Iniciar sesión para comentar.

Categorías

Más información sobre Introduction to Installation and Licensing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by