作业帮 > 综合 > 作业

Matlab的函数中如何实现按引用传递参数?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 16:49:12
Matlab的函数中如何实现按引用传递参数?
几经摸索,总算被俺发现了一种可以替代的方法,就是让函数的参数同时作为同名返回值(实际上不一定非得同名,同名是为了代码理解起来方便),这样便可实现“在函数内部修改参数,外部参数的实际值也会发生变化”的功能.
下面是一个小例子. 文件test.m的源代码如下:
function test
% 测试函数disp('按值传递参数,调用函数后,应有p=1');p=1;parameter_by_value(p);
disp(p); % p=1 disp('按引用传递参数,调用函数后,应有p=2');
p=parameter_by_reference(p);
disp(p); % p=2disp('按引用传递参数,调用函数后,应有p1=2, p2=4, p3=6');p1=1;p2=2;p3=3;[p1,p2,p3]=multi_parameter_by_reference(p1,p2,p3);
disp([p1 p2 p3]);%---- 以下为几个子函数 ----------------function parameter_by_value(p)
% 按值传递参数
% 函数内部改动参数p,函数外p的值应该不变
p=2*p;function p=parameter_by_reference(p)
% 模拟按引用传递参数
% 函数内部改动参数p,函数外p的值也会变.