2017-07-07 62 views
0

从我对matlab的理解中,如果你想定义一个函数并在你的“主文件”中使用它,你需要将函数写入一个单独的文件中并调用它在你的“主文件”的开头用addpath('...\myfunction.m')在一个单独的函数文件中调用一个函数-matlab

现在让我们假设我在一个文件f1.m,我在main.m使用定义一个函数f1,如果我要定义一个函数f2(在另一个文件),需要调用f1,可我在f2.m文件中使用addpath()...\f1.m?或者在f2中拨打f1的最佳方式是什么?

回答

0

您应该创建一个在开始时运行的startup.m文件。位于您当前的目录中。这应该包括你需要添加的所有路径。

所以,你的M档看起来像:

startup 
f1 
f2 
0

做到这一点的最好办法是具有相同的文件夹功能,或者需要通过文件夹来添加文件夹。 因此,如果您将f1.m,f2.m,f3.m置于不同的文件夹,则必须为每个功能调用addpath。 如果你有一个文件夹“myfunctions”,所有你需要做的是addpath('...\myfunctions\')

如果你有一个文件夹命名为“myfunctions”与你同一个文件夹的主要脚本的功能,你只需要将该文件夹添加到路径。 例如

%Main script 
addpath('myfunctions') 
x = -0.5 + rand(100,1); 
y = -0.5 + rand(100,1); 
[a,b] = f1(x,y); 

里面 'myfunctions' 你有f1f2

function [a,b] = f1(x,y) 
a = x + y; 
b = f2(a); 
end 

_

function b = f2(inp) 
b = inp<0; 
end 

你不能用一个文件中使用addpath,它必须是一个文件夹

+0

当我这样做时,我得到一个语法错误,告诉:函数名f1被MATLAB知道其文件名:'myfunctions' – Arthurim

0

将所有文件保存在matlab打开的文件夹中ed,而且你不需要加入路径来明确告诉matlab在被告目录中搜索文件

相关问题