MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]matlab把数组当参数传递的时候怎么会不改变值呢? (https://www.labfans.com/bbs/showthread.php?t=4067)

soliddream 2008-08-04 13:46

[求助]matlab把数组当参数传递的时候怎么会不改变值呢?
 
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返回值,在主函数中依然没有得到正确的修改值


所有时间均为北京时间。现在的时间是 06:25

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.