永发信息网

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

答案:5  悬赏:0  手机版
解决时间 2021-03-29 10:40
  • 提问者网友:临风不自傲
  • 2021-03-28 11:50
matlab一问题,高手进 编写M脚本文件,将某班学生某门课程的成绩。。。
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-03-28 12:36
比如:脚本a=4
函数function a=f(s)
a=s^2;
运行这两个m文件,脚本就建立了一个a变量,而运行函数就不会出现a变量。
这是最简单和最根本的区别了。
全部回答
  • 1楼网友:七十二街
  • 2021-03-28 16:48
你有两个错误,首先你这个文件没有定义成一个m文件,第二,函数change1返回值z1没有定义,改了一下就没错了。
  • 2楼网友:摆渡翁
  • 2021-03-28 15:58
function不能写在script里面的,function前面可以有注释,但不可以有其他命令,如果有其他命令,matlab就会认为这个m文件是个脚本文件,而不是函数文件,因此会出错的,你要想写在一个m文件里面,就把你的脚本写成function,,比如在第一行加function caculation(不需要加输入输出);这样你的function z1=count1(xx)就变成了子函数,这样就不会报错了。
  • 3楼网友:舍身薄凉客
  • 2021-03-28 15:01
主程序:
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));
  • 4楼网友:独行浪子会拥风
  • 2021-03-28 13:43
count1是需要你自定义的一个函数。你定义这个count1之后MATLAB就不会报错了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯