matlab 函数y=f(input,output)该如何实现?

如题,函数返回值y需要为一个计算结果,而函数的参数output也需要成为一个最终输出结果。如何实现?简单举例说明一下即可。感谢!

一个函数只有一个对外的接口,那就是输入参数,如果想改变的这个数不是已有的输入参数,那就没法通过这个函数来改变。只能再写一个函数了。
一般来说matlab中函数的 function output = f (input) 括号里才是输入,output才是输出
但是要求y=f(input,output)中y,和output都是输出:y是输出并做返回值,output也是输出,但是不作为返回值,如下:
% 函数
function y = f (a, output)
% y output 为输出参数
% a 为输入参数
% 此例子计算a的平方的结果,保存在y中, 同时output中也保存一份b的平方的结果

y=a^2;
output=y; 让output和y相等并下面屏幕打印
fprintf(' output = %d\n', output);

% 调用上面这个函数
clc; % 清楚屏幕上的现有输出
clear; % 清楚当前已有的变量
close all; % 关闭当前所以打开的figure窗口
a=2;
y=f(a, b) % 调用函数 此时y=4 并且屏幕打印出 output=4
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-03
LZ的问题没有太搞明白。你的意思是有两个输出吗?那[y,output]=f(input)不就好了吗?如果我的理解有误,请把问题再说清楚一点。追问

简单来说就是需要改变传入参数的值,而且不通过 function p=f(p)这样的形式。这个形式是定死了的,我没有办法改...

追答

按你的意思貌似是不行的。一个函数只有一个对外的接口,那就是输入参数,如果你想改变的这个数不是已有的输入参数,那就没法通过这个函数来改变。。只能再写一个函数了,我感觉。

本回答被提问者采纳
第2个回答  2013-07-03
一般来说matlab中函数的 function output = f (input) 括号里才是输入,output才是输出
但是你要求y=f(input,output)中y,和output都是输出,那我个人理解:y是输出并做返回值,output也是输出,但是不作为返回值,这里我就将它打印出来,如下:

% 函数
function y = f (a, output)
% y output 为输出参数
% a 为输入参数
% 此例子计算a的平方的结果,保存在y中, 同时output中也保存一份b的平方的结果

y=a^2;
output=y; 让output和y相等并下面屏幕打印
fprintf(' output = %d\n', output);

% 调用上面这个函数
clc; % 清楚屏幕上的现有输出
clear; % 清楚当前已有的变量
close all; % 关闭当前所以打开的figure窗口
a=2;
y=f(a, b) % 调用函数 此时y=4 并且屏幕打印出 output=4本回答被网友采纳
相似回答