首页 > 编程知识 正文

matlab 传参,matlab如何求传递函数

时间:2023-05-06 08:55:58 阅读:273338 作者:1236

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。