24小时热门版块排行榜    

查看: 1002  |  回复: 1

清醒的沦陷

新虫 (初入文坛)

[交流] 【求助】递归循环怎么实现?【已解决】 已有1人参与

想实现输出所有由1-3为元素构成的4维行向量。
我的程序如下:
A=cell(1,4);
for i=1 :4
   A{1,i}=0;
end
global B;
B=cell2mat(A);
global p;
p=3;
global k;
k=0;
m=0;
m=f(B,p,k);

function m=f(B,p,k)
k=k+1;
for i=1: 3
  if (k<3)
     m=f(B,p,k);
  end
  A(1,k)=i;
  disp(A);
end
k=k-2;


运行结果:
     0     0     1

     0     0     1     2

     0     0     1     2     3

     5

??? One or more output arguments not assigned during call to 'D:\matlab\work\f.m (f)'.

Error in ==> f at 6
     m=f(B,p,k);

Error in ==> f at 6
     m=f(B,p,k);


于是乎我很崩溃。
请问各位,该怎样修改?

[ Last edited by nono2009 on 2010-7-13 at 16:19 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

清醒的沦陷

新虫 (初入文坛)

知道原因了


nono2009(金币+1):谢谢分享经验。 2010-07-13 16:19:32
少了个参数m,具体程序如下,有需要的可以看看。

A=cell(1,4);
for i=1 :4
   A{1,i}=0;
end
global B;
B=cell2mat(A);
global p;
p=3;
global k;
k=0;
global m;
m=0;
m=f(B,p,k,m,u);


function m=f(B,p,k,m,u)
k=k+1;
for i=1: 3
    B(1,k)=i;
  if (k<4)
     m=f(B,p,k,m,u);
  else
  disp(B);
  end
  if (i==3)
  k=k-1;
  end
end
2楼2010-07-13 00:56:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 清醒的沦陷 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见