フィルターのクリア

how to prevent user from entering non-numeric values?

3 ビュー (過去 30 日間)
amir
amir 2013 年 9 月 16 日
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 件のコメント
amir
amir 2013 年 9 月 16 日
yes,i mean the 4 inputs...this is what i got so far .
Image Analyst
Image Analyst 2013 年 9 月 17 日
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.

サインインしてコメントする。

回答 (2 件)

Image Analyst
Image Analyst 2013 年 9 月 16 日
Hints: ischar() and isnumeric().

Jan
Jan 2013 年 9 月 16 日
編集済み: Jan 2013 年 9 月 16 日
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 件のコメント
amir
amir 2013 年 9 月 17 日
thanks for help,can you give a brief explanation about what you wrote here...

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeTime Series Objects についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by