数学建模社区-数学中国
标题:
急求助一个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)
0 P4 ?, |! l4 t' L0 R
函数是这样写的
8 V- X+ q! D& u
function y=f(a,b,k)
. P+ O. A/ L2 B& C* [# T/ I9 B' j
m=1;
" K8 _1 m' s# ?8 t7 z
for i=1:k
% W8 ^2 Q) b2 n: H3 l1 A# n8 ]2 H
for j=1:k
: n4 L* m: E a8 z: M5 L2 r' Y
if b(j)==a(i)
. w# _3 p8 ~) x; @# w+ M, ^& ?7 B2 d |
if j==i
9 l# G7 p. G% N( {0 y
break;
7 z; W( A9 Y& R8 n; j* Z
else
: A! ?9 s& }; E" g( i! k" e
y(m,1)=i;
4 m& v% N% _( m- Y! |
y(m,2)=j;
1 X8 g& D. Y" ?3 L
m=m+1;
4 l9 o4 B. `2 I
t=b(i);b(i)=b(j);b(j)=t;
( N6 {1 ~# u3 Z' N. O0 ~, y
break
8 V* W% y" L) [! d( a( W2 g
end
' p, n6 z" Q! \6 B! C6 {) x
end
: _" G" `! `. ], f; f z. ?
end
$ A6 h& c5 z4 [% N3 h
end
; O# x# }; x" X6 q
调用函数y=f[a,b,3]
7 V5 K; S4 `0 L% p
显示的是Error using ==> f.f
4 M8 d, K) W w* ^
Undefined D matrix.
. T6 u' i9 y( D+ d' s
请高手们帮忙看看是什么问题。
作者:
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
你程序运行结果:
" k: R" E8 t. Z! c
. w& _0 c1 X" {) {9 z" Z. ]8 b [" L
>> y=f(a,b,3)
) A* f. g: S- q+ Q, E- S
y =
: J" W4 N% J4 H! p
3 2
Z* y! q- Q& s6 {; T
>> y=f(a,b,4)
# Q3 K, J; N0 ~
y =
) A% k# \9 C8 z9 d* C7 E
2 4
5 O* Q6 L6 ~* H3 z
3 4
' h. y8 K) H( t8 @
' V2 l. V4 s# S+ ?& j$ \6 ]8 Y6 E
不会出错啊
作者:
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