Filter löschen
Filter löschen

how to prevent user from entering non-numeric values?

3 Ansichten (letzte 30 Tage)
amir
amir am 16 Sep. 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 Kommentare
amir
amir am 16 Sep. 2013
yes,i mean the 4 inputs...this is what i got so far .
Image Analyst
Image Analyst am 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.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Image Analyst
Image Analyst am 16 Sep. 2013
Hints: ischar() and isnumeric().

Jan
Jan am 16 Sep. 2013
Bearbeitet: Jan am 16 Sep. 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 Kommentar
amir
amir am 17 Sep. 2013
thanks for help,can you give a brief explanation about what you wrote here...

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Time Series Objects finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by