how to prevent user from entering non-numeric values?
Show older comments
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 Comments
Azzi Abdelmalek
on 16 Sep 2013
amir, You have two flagged questions because you deleted them. You have to restore them
@Amir: I agree with Azzi. When we post a solution, we have to expect that you delete the question again and our work is lost for the community. I recommend not to support such a behavior.
amir
on 16 Sep 2013
Jan
on 16 Sep 2013
Please explain the relation between the title and the code. Do you mean the 4 INPUT commands? Then posting the rest is confusing only.
amir
on 16 Sep 2013
Image Analyst
on 17 Sep 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.
Answers (2)
Image Analyst
on 16 Sep 2013
0 votes
Hints: ischar() and isnumeric().
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.
Categories
Find more on Simulink in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!