Matlab如何在定义函数过程中使用外部的变量?

举个例子:首先我定义y=[y1,y2],其中y1,y2可以是任意的数字,比如说y=[1,1]吧然后我函数的M文件是:functionf=gg(x)f=x(1)*y(1)+... 举个例子:
首先我定义y=[y1,y2],其中y1,y2可以是任意的数字,比如说y=[1,1]吧

然后我函数的M文件是:
function f=gg(x)
f=x(1)*y(1)+x(2)*y(2)
end

然后我代入a=[a1,a2],比如a=[1,3],我输入gg(a),最终提示为:y没有定义。

所以想请教大神,如果我要根据y的同作出不同的gg(x),比如说对1000个y作出1000个x,那么我怎么在函数的M文件中导入外部变量y呢?

别跟我说用匿名函数做,我上面的gg(x)只是举个例子,在实际中可能会用到高维函数,匿名函数根本不可能一个一个变量手动输入的。
我已经知道了,函数应该这样写
function f=gg(x)
global y;
f=x(1)*y(1)+x(2)*y(2);
end

然后主程序这样就可以了
global y
y=[1 1];
a=[1 3];
f(a)
就可以了
展开
 我来答
刺友互
高粉答主

2019-12-27 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:74.7万
展开全部

1、首先,打开matlab的程序软件。

2、接着,我们新建一个函数文件。

3、定义一个函数,通过function函数,做一个简单求幂次运算的函数。

4、将编写的函数文件保存,使其命名的函数名字与文件保存的名字保持一致。

5、保存之后,我们就可以调用这个定义的幂次函数,求4的8次幂和2的3次幂。

注意事项:

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

tianxiawulang
推荐于2017-12-16 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2677万
展开全部

使用全局变量是一种思路,另外还有一种更可取的做法是用嵌套函数(Nested Function)。

全局变量在小型应用中不失为一种简单有效的做法,但在规模稍大的代码里一般是不提倡的,尤其是多人协作的情况下,存在隐患。


大致的代码结构如下:

function main
y=[1 1];
a=[1 3];
f(a)

    function f=gg(x)
        f=x(1)*y(1)+x(2)*y(2);
    end
end
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茕顾
2020-03-22
知道答主
回答量:42
采纳率:0%
帮助的人:5.7万
展开全部
global是个好方法,学习了,谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f62bc15
2016-08-28 · TA获得超过1295个赞
知道小有建树答主
回答量:558
采纳率:66%
帮助的人:154万
展开全部
直接sum(x.*y,2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式