matlab一问题,高手进 编写M脚本文件,将某班学生某门课程的成绩。。。

编写M脚本文件,将某班学生某门课程的成绩:60,75,85,97,52,36,86,56,94,84,77,统计各个分段的学生人数,并将每个人的学生成绩变为优,良,中,及格和不及格表示,统计人数和成绩变换都用子程序表示。
x=[60 75 85 96 52 36 86 56 94 84 77];
c=count1(x)
d=change1(x)
function z1=count1(xx)
n=size(xx);
z1=zeros(5,1);
for n1=1:n(2)
x1=fix(xx/10);
switch x1(n1)
case 9
z1(1)=z1(1)+1;
case 8
z1(2)=z1(2)+1;
case 7
z1(3)=z1(3)+1;
case 6
z1(4)=z1(4)+1;
otherwise
z1(5)=z1(5)+1;
end
end
function z1=change1(xx)
我把这些输入,它说??? Undefined function or method 'count1' for input arguments of type 'double'.
我加了function caculation,不再提示之前的那个,但变成这样了

>> function caculation
x=[60 75 85 96 52 36 86 56 94 84 77];
c=count1(x)
d=change1(x)
function z1=count1(xx)
n=size(xx);
z1=zeros(5,1);
for n1=1:n(2)
x1=fix(xx/10);
switch x1(n1)
case 9
z1(1)=z1(1)+1;
case 8
z1(2)=z1(2)+1;
case 7
z1(3)=z1(3)+1;
case 6
z1(4)=z1(4)+1;
otherwise
z1(5)=z1(5)+1;
end
end
function z1=change1(xx)
??? function caculation
|
Error: Function definitions are not permitted at the prompt or in scripts

主程序:
clear;clc;close all
a=[60,75,85,97,52,36,86,56,94,84,77];
str={'优','良','中','及格','不及格'};
y1=mytabulent(a);
y2=myTrans(a);
fprintf('转化如下\n');
for i=1:length(a)
fprintf('%d-----%s\n',a(i),y2{i});
end
fprintf('统计如下\n');
for i=1:length(y1)
fprintf('%s的人数是%d\n',str{i},y1(i));
end
转化的程序 myTrans.m
function y=myTrans(x)
y=cell(length(x),1);
for i=1:length(x)
if x(i)>=90
y{i}='优';
elseif x(i)>=80
y{i}='良';
elseif x(i)>=70
y{i}='中';
elseif x(i)>=60
y{i}='及格';
else
y{i}='不及格';
end
end
统计的程序mytabulent.m
function y=mytabulent(x)
y(5,1)=0;
y(1)=length(find(x>=90));
y(2)=length(find(x<90 & x>=80));
y(3)=length(find(x<80 & x>=70));
y(4)=length(find(x<70 & x>=60));
y(5)=length(find(x<60));
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-26
function不能写在script里面的,function前面可以有注释,但不可以有其他命令,如果有其他命令,matlab就会认为这个m文件是个脚本文件,而不是函数文件,因此会出错的,你要想写在一个m文件里面,就把你的脚本写成function,,比如在第一行加function caculation(不需要加输入输出);这样你的function z1=count1(xx)就变成了子函数,这样就不会报错了。
第2个回答  推荐于2018-04-21
比如:脚本a=4
函数function a=f(s)
a=s^2;
运行这两个m文件,脚本就建立了一个a变量,而运行函数就不会出现a变量。
这是最简单和最根本的区别了。本回答被网友采纳
第3个回答  2010-11-26
你有两个错误,首先你这个文件没有定义成一个m文件,第二,函数change1返回值z1没有定义,改了一下就没错了。
第4个回答  2010-11-24
count1是需要你自定义的一个函数。你定义这个count1之后MATLAB就不会报错了。本回答被网友采纳

(1) matlab编写一个学生成绩管理的函数
数学建模的实验报告:实验内容是:编写一个学生成绩管理的函数程序:将学生成绩按五个等级划分:优秀(90以上),良好(80-90),中等(70-79),及格(60-69),不及格(60以下)对输入的学生成绩按五个等级划分后,打印学生姓名,得分,等级,并计算全班最高分、最低分、平均分.模型的建立于求解...

请数学matlab高手回答1.已知某班的5名学生的三门课成绩列表如下:
max = 89 b = 1 2 %这是数学成绩的最高分89,学号为2 >> f(matlab,1,5)max = 91 b = 1 2 %matlab成绩最高分为91,学号为2 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其...

如何使用matlab计算加权平均分
4.4加权平均分编写程序,完成输入某学生某学期6门课程的成绩,并按学分2、3、2、4、2.5、1分别进行加权平均,计算出每个学生的加权平均分。 其中,xi为课程成绩,wi为相应学分。 如何使用matlab?匿名 | 浏览4564 次 |举报 我有更好的答案推荐于2017-12-16 13:55:21 最佳答案 根据加权平均分的定义,计算加权平均...

以四分位距和以平均值的标准差检测离散值和极值之间有什么区别_百度知 ...
变异程度一般用间距或者方差来描述.boxplot 箱线图就是显示全距(最大值-最小值)和 四分位间距(把数组分为最小值点,上四分位点,中位数,下四分位点和最大值点) 每两个之间就是四分位间距 .优点:直观,各组线段是各包括了25%的数据,因此,线段长度实际反映了数据的密度.你随机输入任意的一组...

我是长春的学生现在高三。我高一高二学得不是太认真,就是没熬过夜回家...
最后一周写论文。这位同学顺利的完成了任务。毕业的时候,导师问他:“你这次毕业设计用到了大学四年的哪门课程啊?微积分?”“没有。”“线性代数?”“没有”。“C语言?”“没有。”“微机原理?”“也没有……顶多用到了英语,因为编程是用英语编的。”“那你大学四年都干什么了?你所学的所有的课程都没...

开学季到了,你都有哪些学业上的氪金项目?
学习辅导课程:可以选择参加一些学科辅导班或者个别辅导课程,这些课程通常由专业老师授课,能够针对性地提高学生的学科成绩和学习方法。科研项目参与:如果有机会,可以积极申请参与科研项目。参与科研项目将帮助学生提升科研能力、培养创新思维,并为今后的学术发展打下坚实基础。实践实习机会:寻找与专业相关的...

西南交通大学有哪些教授的课是必须要去蹭的?
首先是李娟老师的交通运输概论。我是交通运输类专业的学生,所以这是向我们专业开设的课程,但主要讲的是一些基础理论知识,大家都可以听的哟。李娟老师上课思路清晰,很注重同学们逻辑思维的培养。在她的课上,你会实时感叹老师怎么懂这么多,见识太广泛了,简直是行走的教科书,在这样的课上真的舍不得...

如何使用matlab计算加权平均分
计算加权平均分的示例代码如下:>> x = [80 92 83 67]; % 各科成绩 >> w = [2.5 1.0 1.5 3.0]; % 各科学分 >> y = sum(x.*w)\/sum(w) % 加权成绩 y =77.1875

我女儿即将上高中,暑假在家预习高中课程,因为很多看不懂,有些厌学,家...
自己看,可能很多都看不懂,最好找个老师给与辅导一下怎么学,高中的学科一般都比较难,深,不是仅仅知道知识是什么,还要灵活运用知识,解决问题。 作为家长,最多还是要多鼓励孩子不怕困难,勇于担当。我推荐一篇清华学生的学习经验多读几片,可能有很大的启发哦!!我希望大家从我的报告中吸取经验教训,少走弯路,并且为自...

相似回答