matlab中有哪些输出函数,MATLAB中查找并输出的函数有什么

此博客给出一段Matlab程序,该程序接收用户名作为输入,从Excel文件读取数据,查找用户名对应信息并输出相关成绩,包括作业、考试问题成绩及总体成绩,还会根据成绩给出复习建议,同时包含查找字符串位置的子函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序如下:

function R=username(S)

%S为用户名的字符串

if ~isstr(S)

error('Input argument is not string.');

end

%读取数据

[Ad,At]=xlsread('final exam-mini project-database.xlsx','Students');

A=At(3:end,1:end);

p=isnan(Ad);

po=find(p(1,:));

Ad=mat2cell(Ad,ones(1,size(Ad,1)),ones(1,size(Ad,2)));

A(3:end,3:po+1)=Ad(:,1:po-1);

A(3:end,po+3:end)=Ad(:,po+1:end);

[~,B]=xlsread('final exam-mini project-database.xlsx','Assignments');

BAP=instr(B(:,1),'Assignment');

BAP=find(BAP);

BEP=instr(B(:,1),'Exam Question');

BEP=find(BEP);

BA=B(BAP:BEP-2,1:end);

BE=B(BEP:end,1:end);

%寻找用户名

p=instr(A(:,2),S);

po=find(p);

if isempty(po)

error('该用户名不存在!');

end

A1=A([1,2,po],[1,2,29,30]);

disp(A1)

P=instr(A(1,:),{'Assignment','Exam Question','Overall Grade'});

P=find(P);

A2=A([2,po],[P(1):P(2)-1]);

disp('Assignment:')

disp(A2)

A3=A([2,po],[P(2):P(3)-1]);

disp('Exam Question:')

disp(A3)

disp(['Overall Grade: ',num2str(A{po,P(3)})])

%输出额外信息

for n=1:size(A2,2)

if A2{2,n}<70

disp(['Recommended review Assignment ',num2str(n),': Grade: ',...

num2str(A2{2,n}),' out of 100 points'])

PA2=BA([1,n+1],:);

disp(PA2)

else

continue;

end

end

AS=[5*ones(1,16),3*ones(1,16)];

AS(1,[9,10,11,14,16])=20;

AS(2,[9,10,11,14,16])=10;

for n=1:size(A3,2)

if A3{2,n}

disp(['Recommended review Exam Question ',num2str(n),': Grade: ',...

num2str(A3{2,n}),' out of ',num2str(AS(1,n)),' points'])

PA3=BE([1,n+1],:);

disp(PA3)

else

continue;

end

end

function p=instr(string,pattern)

%寻找pattern在string中的位置

%string为元胞数组

%pattern为元胞数组或者单个字符串

p=zeros(size(string,1),size(string,2));

if iscell(pattern)

pattern=reshape(pattern,prod(size(pattern)),1);

for pa=1:length(pattern)

l=strfind(string,pattern{pa});

l=reshape(l,prod(size(l)),1);

for m=1:length(l)

if isempty(l{m})

continue;

else

p(m)=1;

break;

end

end

end

elseif isstr(pattern)

l=strfind(string,pattern);

l=reshape(l,prod(size(l)),1);

for m=1:length(l)

if isempty(l{m})

continue;

else

p(m)=1;

break;

end

end

else

error('Argument is not cell or string!');

end

return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值