matlab中如何写循环?
答案:1 悬赏:70 手机版
解决时间 2021-01-29 10:31
- 提问者网友:锁深秋
- 2021-01-28 17:06
比如说,我一次性输入几个成绩,要求输出对应的绩点的一个数组,该怎么写?比如输入90 40 70 80,要求输出a=5.0 0 3 4 该怎么写程序?
最佳答案
- 五星知识达人网友:怙棘
- 2021-01-28 17:43
disp('Please enter the value:\n');
j=1;
b=input('Enter the value of b:\n');
while b(j)~='|'
j=j+1;
b(j)=input('Enter the value of b:\n'); % 输入数据当输入‘|’时结束输入
end
n=length(b(1:end-1));
b=b(1:end-1);
a=zeros(n,1); %建立输出矩阵
%使用矩阵思维 小数据和c语言思维没什么差别但是大量数据时会有明显差别
k=find(b>=90);
a(k)=5;
k1=find((b>=80).*(b<90)); %注这是数组点乘 .*
a(k1)=4;
k2=find((b>=70).*(b<80));
a(k2)=3.5;
k3=find((b>=60).*(b<70));
a(k3)=3;
k4=find(b<60);
a(k4)=0;
disp(a)
% 下面用的是c语言的思维
% for i=1:n
% if (b(i)>=90) % 几个分级判断,可以根据你的具体规定修改
% a(i)=5;
% elseif (b(i)<90 && b(i)>=80)
% a(i)=4;
% elseif (b(i)<80 && b(i)>=70)
% a(i)=3.5;
% elseif (b(i)<70 && b(i)>=60)
% a(i)=3.0;
% else
% a(i)=0;
% end
% end
j=1;
b=input('Enter the value of b:\n');
while b(j)~='|'
j=j+1;
b(j)=input('Enter the value of b:\n'); % 输入数据当输入‘|’时结束输入
end
n=length(b(1:end-1));
b=b(1:end-1);
a=zeros(n,1); %建立输出矩阵
%使用矩阵思维 小数据和c语言思维没什么差别但是大量数据时会有明显差别
k=find(b>=90);
a(k)=5;
k1=find((b>=80).*(b<90)); %注这是数组点乘 .*
a(k1)=4;
k2=find((b>=70).*(b<80));
a(k2)=3.5;
k3=find((b>=60).*(b<70));
a(k3)=3;
k4=find(b<60);
a(k4)=0;
disp(a)
% 下面用的是c语言的思维
% for i=1:n
% if (b(i)>=90) % 几个分级判断,可以根据你的具体规定修改
% a(i)=5;
% elseif (b(i)<90 && b(i)>=80)
% a(i)=4;
% elseif (b(i)<80 && b(i)>=70)
% a(i)=3.5;
% elseif (b(i)<70 && b(i)>=60)
% a(i)=3.0;
% else
% a(i)=0;
% end
% end
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯