数学建模社区-数学中国

标题: 急求助一个matlab程序小问题 [打印本页]

作者: muaqin    时间: 2009-11-26 20:53
标题: 急求助一个matlab程序小问题
假设a=[1,2,3,4];b=[1,3,4,2];,B如果要变成A,需要首先交换2,4位,然后再交换3,4位,也就是我希望函数显示出交换的顺序(2,4)及(3,4)
9 A$ f' s2 g8 z3 y$ L0 ~% U/ e函数是这样写的6 z3 }( p8 w. Z
function y=f(a,b,k)
2 n4 s) b% n0 n& y* J1 _m=1;
3 q1 {2 b5 l6 f$ J6 v1 Tfor i=1:k         8 S. J+ Y$ c/ Z* y, E: Q. r4 N
        for j=1:k
4 r4 b1 ^; v3 V9 B, q* [; K        if b(j)==a(i)  Y8 }1 q) E: ~0 X
            if j==i
: v9 i+ Y3 y' X                break;3 o/ V! D# {: M
            else
6 A: B9 N0 j% ]) F3 }               y(m,1)=i;/ v9 k- D' s: j/ ?7 L! Y5 k4 k4 w
               y(m,2)=j;3 G0 r6 Z9 h' ^1 t' V* a' m7 @3 M
               m=m+1;  C! S  ?  C0 a" S. p
               t=b(i);b(i)=b(j);b(j)=t;0 D6 }6 f0 J; q- x, ~
               break+ [+ m8 D7 W( Z0 T2 s
            end
# `7 j) E# ~4 T        end   
4 w+ K5 M8 b% C3 ~: Y/ \+ M    end   6 X7 ]) W7 c- @. x4 Z+ ^) j
end
0 R. x% K: X" z( v% B) C/ N调用函数y=f[a,b,3]& g. Z4 [5 |* H4 ~% _3 Y& t8 K3 A
显示的是Error using ==> f.f
2 Q1 R7 g  \5 Z7 W5 B* {( OUndefined D matrix.# T0 O* [/ n8 }9 N/ E/ o
请高手们帮忙看看是什么问题。
作者: madio    时间: 2009-11-26 21:52
调用函数的时候要使用圆括号,不是方括号。
作者: 为你奋斗    时间: 2009-11-26 22:42
还是论坛管理员厉害!呵呵,我们要好好学习!
作者: muaqin    时间: 2009-11-27 08:22
是用的圆括号,那是我打错了!不是那个问题。提示的是Undefined D matrix,不明白这是什么错误
作者: leo12ok    时间: 2009-11-27 08:29
你程序运行结果:
  \) C$ D# m& Z9 C! r1 y) w& o' q8 V
$ }5 P5 ^$ }; P7 ~; U>> y=f(a,b,3)
- \6 }# v$ c+ ]: }$ J% k; dy =
* q% ~' m8 b: u" _     3     28 W0 I1 N7 f2 a, T
>> y=f(a,b,4)
$ k2 e8 b1 H) O7 b: [y =- J9 F4 a' J. B: n& U
     2     4
* Z, V# q2 O+ u0 c     3     46 I) [6 X. ~8 V& W

- \+ F$ R2 J% c不会出错啊
作者: muaqin    时间: 2009-11-27 10:29
找到问题了,我在matlab中编的函数名为ss,不是f,换个函数名就可以了。好像ss不能做为函数名。
作者: muaqin    时间: 2009-11-27 10:31
还忘了一件事,谢谢各位的帮忙!!!!!!!!!!
作者: gk0402jeff    时间: 2009-11-27 19:58
呵呵呵~气氛不错
作者: spectral    时间: 2009-12-5 20:25
原来是这样呀!我也学了一招!主函数名和文件名应该一致才可以!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5