我这个程序,在matlab的simulink中function中,我想实现3个输入,3个输出。

function[Sa,Sb,Sc]=fcn(u1,u2,u3)if(u1==1&&u2==1)switchu3case1:Sa=0;Sb=0;Sc=1;case2:Sa... function [Sa,Sb,Sc]= fcn(u1,u2,u3)
if(u1==1&&u2==1)
switch u3
case 1:Sa=0;Sb=0;Sc=1;
case 2:Sa=0;Sb=1;Sc=0;
case 3:Sa=0;Sb=1;Sc=1;
case 4:Sa=0;Sb=0;Sc=1;
case 5:Sa=1;Sb=0;Sc=1;
case 6:Sa=1;Sb=1;Sc=0;
end
elseif(u(2)==0)
Sa=0;Sb=0;Sc=0;
elseif(u(1)==1&&u(2)==-1)
switch u(3)
case 1:Sa=1;Sb=0;Sc=1;
case 2:Sa=1;Sb=1;Sc=0;
case 3:Sa=0;Sb=0;Sc=1;
case 4:Sa=0;Sb=1;Sc=0;
case 5:Sa=0;Sb=1;Sc=1;
case 6:Sa=0;Sb=0;Sc=1;
end
elseif(u(1)==0&&u(2)==1)
switch u3
case 1:Sa=0;Sb=0;Sc=1;
case 2:Sa=0;Sb=0;Sc=1;
case 3:Sa=0;Sb=0;Sc=1;
case 4:Sa=0;Sb=0;Sc=1;
case 5:Sa=0;Sb=0;Sc=1;
case 6:Sa=0;Sb=0;Sc=1;
end
else(u(1)==0&&u(2)==-1)
switch u3
case 1:Sa=0;Sb=0;Sc=1;
case 2:Sa=1;Sb=0;Sc=1;
case 3:Sa=1;Sb=1;Sc=0;
case 4:Sa=0;Sb=0;Sc=1;
case 5:Sa=0;Sb=1;Sc=0;
case 6:Sa=0;Sb=1;Sc=1;
end
end
y = [Sa;Sb;Sc];
end

这是程序,不知道哪里有错误。
展开
 我来答
tianxiawulang
推荐于2016-02-01 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2801万
展开全部
  1. 从图判断,你用的是Embedded MATLAB Function模块;

  2. MATLAB的switch...case语句和C语言不同,case的后面应该接逗号而不是冒号;

  3. 你的u1、u2、u3多处误写成u(1)、u(2)、u(3);

  4. 条件语句的最后一个分支

        else(u1==0&&u2==-1)

    到底有没有条件判断?有条件应该用elseif,无条件的话后面不应该有括号;

  5. 你要确保所有执行路径输出参数都会被赋值,例如:

    1. if语句必须要有else而不能只有elseif;

    2. switch语句必须有otherwise而不能只有case。

       

    尽管从你的实际数据来说可能不会出现else和otherwise分支的情况,但从程序的要求上来说,必须要保证执行路径的完备,否则不能通过编译。

     

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式