数学建模社区-数学中国

标题: 急求助一个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)7 r) X: z- _$ ~' Y" o
函数是这样写的! ~5 T! }" q% P+ O6 X; j  q
function y=f(a,b,k)4 H; E4 H' W: x
m=1;$ B' H5 ?) y1 k- Y* ^4 S* y
for i=1:k         
7 I( ]+ {$ d0 k3 f! U        for j=1:k
+ {$ H) d# Y) o; G' U2 c        if b(j)==a(i)* K. b1 G( `2 n" \+ g
            if j==i
7 D2 \" O9 I% b                break;& S2 C" {( X2 p9 `$ `% G
            else
2 N$ ~- E* s5 t: C+ u( _  |3 d               y(m,1)=i;
, U4 b! X$ Y$ Q3 u               y(m,2)=j;
- }: F' W- V2 \% H" |4 ~! h& m               m=m+1;2 s1 L" o. _  q
               t=b(i);b(i)=b(j);b(j)=t;
# u- Q' i, A3 B6 T. `  V               break
9 C& S; y  o; |            end5 k  D+ Z( U( h$ B  M" q5 T
        end    ; n% A7 L- l6 v  |0 K1 @
    end   3 }4 E& V; u, L9 L7 }
end
& Q; u- O% y; _' Q& Y调用函数y=f[a,b,3]
/ ~/ J: X0 i: D) U7 ]/ E显示的是Error using ==> f.f
& d& F2 E: K6 y; m* ?1 o0 {Undefined D matrix.4 w: H( t; u- |" S) Z( {
请高手们帮忙看看是什么问题。
作者: 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
你程序运行结果:
4 J/ [) f, c% v8 w3 @4 ^. Y! K& \! a; p$ M. b
>> y=f(a,b,3)
/ @& l3 G% I+ D: V0 e, ey =( T5 S/ C4 E: R. m/ P/ S) I0 O
     3     2
2 Z. P) w, c8 i  X) H& v. K>> y=f(a,b,4)
. M3 Z! |" h9 Ay =) F9 x* c0 k9 N: e! q
     2     4
/ ]5 d9 K6 B  X7 x     3     4
( k- U+ Y. [; T
: D: W$ G/ l1 `3 E' m不会出错啊
作者: 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