matlab中的function函数

写出下列程序的输出结果。
函数文件sub.m:
function fun=sub(y)
global x
y=3*x;
x=x+y;
脚本文件exe.m:
global x
x=[1:3; 1:2:5];
y=2:2:6;
sub(y);
x
y
这一题最后输出的y为什么不是3,6,9;3,9,15而是[2,4,6]?谢谢

因为y没有定义为全局,就像c++的值传递和引用传递,在这里等价于c++的值传递,将y的值带入sub,然后sub中对y的操作并不会更新exe.m中的y的值