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

2024-12-12 11:16:25
推荐回答(5个)
回答1:

主程序:
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));

回答2:

function不能写在script里面的,function前面可以有注释,但不可以有其他命令,如果有其他命令,matlab就会认为这个m文件是个脚本文件,而不是函数文件,因此会出错的,你要想写在一个m文件里面,就把你的脚本写成function,,比如在第一行加function caculation(不需要加输入输出);这样你的function z1=count1(xx)就变成了子函数,这样就不会报错了。

回答3:

比如:脚本a=4
函数function a=f(s)
a=s^2;
运行这两个m文件,脚本就建立了一个a变量,而运行函数就不会出现a变量。
这是最简单和最根本的区别了。

回答4:

你有两个错误,首先你这个文件没有定义成一个m文件,第二,函数change1返回值z1没有定义,改了一下就没错了。

回答5:

count1是需要你自定义的一个函数。你定义这个count1之后MATLAB就不会报错了。