matlab 打印多个变量,matlab函数多个输出

时间:2025-04-26 07:07:28

matlab函数多个输出

可以输出多个

是不是因为你在函数中没有给输出变量赋值?

给一个例子

function [a,b,c]=test1(input)

if input==1

a=ones(2);

b=ones(3);

c=ones(4);

else

a=zeros(2);

b=zeros(3);

c=zeros(4);

end

函数调用

>> [a1,b1,c1]=test1(1)

a1 =

1 1

1 1

b1 =

1 1 1

1 1 1

1 1 1

c1 =

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

>> [a1,b1,c1]=test1(0)

a1 =

0 0

0 0

b1 =

0 0 0

0 0 0

0 0 0

c1 =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0Switch-case分支

switch语句和if语句类似,相当于多项选择。switch语句根据变量或表达式的取值不同分别执行不同的命令。其基本的调用格式为:

switch 表达式(标量或字符串) %表达式为一标量或字符串

case值一

语句体一 %当表达式的值=值一时,执行语句体一,然后跳出该结构

case值二

语句体二 %当表达式的值=值二时,执行语句体二,然后跳出该结构

otherwise

语句体 %表达式的值不等于前面所有检测值时,则执行此组语句

end

用户用学生的成绩管理作为演示switch结构及结构体数组的应用,划分区域:满分(100)、优秀(90—99)、良好(80—89)、及格(60—79)、不及格(<60):

>> for i=l:10

a(i)=89+i;

b(i)=79+i;

c(i)=69+i;

d(i)=59+i;

end

>> c=[d,c];

>> Names={’zhang’,’wang’,’li’,’zhao’,’liu’); %元胞数组

>> Score=(85,72,93,54,100);

>> Rank=cell(1,5);

创建一个含有5个元素的结构体数组S,它有三个域:Name、Score、Rank:

>> S=struct(’Name’,Name,’Score’,Score,’Rank’,Rank);

根据学生的分数,求出相应的等级:

>> for i=1:5

switch S(i).Score

case 100

S(i).Rank=’满分’;

case a

S(i).Rank=’优秀’;

case b

S(i).Rank=’良好’;

case c

S(i).Rank=’及格’;

otherwise

S(i).Rank=’不及格’;

end

end

将学生的姓名,得分,登记等信息打印出来:

>> disp([’学生姓名 ’,’得分 ’,’等级’]);

>> for i=1:5

disp([S(i).Name,blanks(6),num2str(S(i).Score),blanks(6),S(i).Rank]);

end

学生姓名 得分 等级

zhang 85 良好

wang 72 及格

li 93 优秀

zhao 54 不及格

liu 100 满分可以输出多个

是不是因为你在函数中没有给输出变量赋值?

给一个例子

function [a,b,c]=test1(input)

if input==1

a=ones(2);

b=ones(3);

c=ones(4);

else

a=zeros(2);

b=zeros(3);

c=zeros(4);

end

函数调用

>> [a1,b1,c1]=test1(1)

a1 =

1 1

1 1

b1 =

1 1 1

1 1 1

1 1 1

c1 =

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

>> [a1,b1,c1]=test1(0)

a1 =

0 0

0 0

b1 =

0 0 0

0 0 0

0 0 0

c1 =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0