本文目录
MATLAB switch输出百分制成绩
原代码的主要问题是disp() 里面的A、B等都是字符,需要加’ ’,另外就是switch x(performance/10) 里的x不知道是什么。 新写的命令如下: ————————————————————————————————————————performance=input(’请输入百分制成绩: ’);if (performance》100) | (performance《0) % 百分制成绩,先排除掉>100和<0的分数值。 error(’分数超出范围,请输入0-100间的值’)endswitch floor(performance/10) %floor函数,取下整值。 case{0,1,2,3,4,5} %0-59分,E等。 disp(’E’); case{6} %60-69分,D等。 disp(’D’); case{7} disp(’C’); %70-79分,C等。 case{8} disp(’B’); %80-89分,B等。 case{9,10} disp(’A’); %90-100分,A等。 otherwise disp(’wrong’);end————————————————————————————————————
matlab中switch语句统计分段人数
其实这种情况不适合用 switch ,用if else判断语句合适。为了说明switch用,这里我加了一个switch的判断:n1=0; %表示优的人数 》=90分n2=0;%表示良的人数 》=80分n3=0;%表示中的人数 》=60分n4=0;%表示不及格的人数 《60分fs=;%表示所有人的分数,可以是个行向量,根据情况自己赋值就行cj=num2str(zeros(length(fs),1));for i=1:length(fs) f=fs(i); if f》=90 cj(i,1)=’优’; elseif f》=80&&f《90 cj(i,1)=’良’; elseif f》=60&&f《80 cj(i,1)=’中’; elseif f《60 cj(i,1)=’不’; cj(i,2)=’及’; cj(i,3)=’格’; end switch cj(i,1) case ’优’ n1=n1+1; case ’良’ n2=n2+1; case ’中’ n3=n3+1; case ’不’ n4=n4+1; endend运行结果:cj = %与分数对应不及格不及格不及格不及格中 中 良 优 良 优 优 良 优 n1 = 4》》 n2n2 = 3》》 n3n3 = 2》》 n4n4 = 4
matlab分段函数用switch编程(不要if语句的)
clear
a=input(’input a’);
b=input(’input b’);
c=input(’input c’);
x=0.5:0.01:5.5;
for i=1:length(x);%%用循环求对应的x(i)取整和对应的y(i)
t=fix(x(i)-0.5);
switch(t) %%switch开关来选择y(i)表达式
case 0
y(i)=a*x(i)*x(i)+b*x(i)+c;
case 1
y(i)=a*sin(b)^c+x(i);
case 2
y(i)=a*sin(b)^c+x(i);
case 3
y(i)=log(abs(b+c/x(i)));
case 4
y(i)=log(abs(b+c/x(i)));
case 5
y(i)=log(abs(b+c/x(i))); %由于t=5存在,这个开关要留着,我随便给的。
end
end
plot(x,y);