首先:matlab中只能是值传递,没有地址传递。也就是说,当你把实参传给形参,只是建立了一个新变量,而且这是一个局部变量,无论我们在函数中怎么改变这个变量,都不会改变实参的值。
所以可以采用的办法是将形参作为返回值传递出来:
如下的代码可以发现:a的值没有改变,但是调用函数以后被赋值的变量b却真正是我们想要的a.
关键就在于用返回值传递。
a=rand(1,12);
b=myrand(a);
function a=myrand(a)
for i=1:12
if a(i)>=1/2
a(i)=1;
else
a(i)=0;
end
end
end