您当前的位置: 首页 >  matlab

phymat.nico

暂无认证

  • 2浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

phymat.nico 发布时间:2020-05-07 00:42:28 ,浏览量:2

Matlab的函数中如何实现按引用传递参数? -- by benbenknight          Matlab中函数的参数都是采用按值传递的方式,没有按引用传递的方式,这让C++程序员很不习惯,很多时候我们可能会需要“在函数内实际 修改参数的值”,尤其在当传入参数是一个类或结构体时。     几经摸索,总算被俺发现了一种可以替代的方法,就是让函数的参数同时作为同名返回值(实际上不一定非得同名,同名是为了代码理解起来 方便),这样便可实现“在函数内部修改参数,外部参数的实际值也会发生变化”的功能。     下面是一个小例子。   文件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=2 disp('按引用传递参数,调用函数后,应有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的值也会变。 p=2*p; function [p1,p2,p3]=multi_parameter_by_reference(p1,p2,p3) % 模拟按引用传递多个参数 p1=2*p1; p2=2*p2; p3=2*p3;

原文地址:http://blog.sina.com.cn/s/blog_50ee72f101009uod.html

关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.1238s