登录论坛

查看完整版本 : [求助]matlab把数组当参数传递的时候怎么会不改变值呢?


soliddream
2008-08-04, 13:46
RT~
比如
function test(a)
change(a);
a

function change(a)
a(:,:)=1;
测试 a =[0 0;0 0];test(a);输出[0 0;0 0]

测试test(0),还输出1的,我改成
function test(a)
a=change(a);
a

function a=change(a)
a(:,:)=1;
测试 a =[0 0;0 0];test(a);才输出[1 1;1 1]

soliddream
2008-08-04, 14:17
帮个忙撒,我在搞递归函数,结果发现参数根本就没改变,虽然按步调试的时候确实得到期望的值:lovely:

我把数组声明成global全局型数组了:sweat: 只好这么折中了。

有哪位高手可以告诉我怎么改变参数的数组值?

大体的文件结构如下:
function main(LB)
recursive(LB,1);

function recursive(LB,n)
if(n<size(LB,1)*size(LB,2))
LB(n) = 1;

注意LB是二维数组,当然实际上我不会用递归函数做这种无聊的事情,只是测试,我发现增加recursive返回值,在主函数中依然没有得到正确的修改值