patatos123 2018-04-09 10:40 采纳率: 33.3%
浏览 623
已结题

MATLAB互换行的问题,按已知数据画直方图

为什么输出成绩排序后的结果,sickness和absent的成绩变为了0,是不是第一部分的换行发生问题,另外按照t1,t2,t3,t4,t5画直方图怎么画。

hang=size(chengji,1);
for i=1:hang
if strcmp(chengji{i,5},'absent')|| strcmp(chengji{i,5},'sickness')
for m=hang:1
if strcmp(chengji{m,5},'absent')~=0&&strcmp(chengji{m,5},'sickness')~=0
temp1=chengji(m,:);

chengji(m,:)=chengji(i,:);
chengji(i,:)=temp1;
end
end
end
end

for i=1:hang
for j=2:hang-1
if chengji{j,5}<chengji{j+1,5}
temp=chengji(j,:);
chengji(j,:)=chengji(j+1,:);
chengji(j+1,:)=temp;
end
end
end
disp('成绩排序结果');
disp(chengji);
c1=0;
c2=0;
c3=0;
for i=1:hang
if chengji{i,2}==1305
c1=c1+1;
elseif chengji{i,2}==1308
c2=c2+1;
elseif chengji{i,2}==1312
c3=c3+1;
end
end
X=[c1 c2 c3];
explode=zeros(size(X));
pie(X,explode,{'1305','1308','1312'});

t1=0;
t2=0;
t3=0;
t4=0;
t5=0;
t6=0;

for i=2:hang

if  chengji{i,5}>=90&&chengji{i,5}<=100
   t1=t1+1;

elseif chengji{i,5}>=80&&chengji{i,5}<90
    t2=t2+1;

elseif chengji{i,5}>=70&&chengji{i,5}<80
    t3=t3+1;

elseif chengji{i,5}>=60&&chengji{i,5}<70
    t4=t4+1;

elseif chengji{i,5}<60&&chengji{i,5}>0
    t5=t5+1;

elseif strcmp(chengji{i,5},'absent')|| strcmp(chengji{i,5},'sickness')
    t6=t6+1;

end

end
disp('成绩分布情况');
disp('90~100人数');disp(num2str(t1));
disp('80~90人数');disp(num2str(t2));
disp('70~80人数');disp(num2str(t3));
disp('60~70人数');disp(num2str(t4));
disp('不及格人数');disp(num2str(t5));
disp('未参与考试人数');disp(num2str(t6));

  • 写回答

1条回答 默认 最新

  • directx83 2018-04-09 13:34
    关注

    for m=hang:1 应改为 m=hang:-1:1

    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面