2017-07-07 54 views
0

私がmatlabについて理解したところで、関数を定義して "メインファイル"で使用するには、別のファイルに関数を記述して呼び出す必要があります"メインファイル"の先頭にaddpath('...\myfunction.m')と入力します。別の関数ファイルの関数を呼び出す - matlab

今度は私がf1を呼び出す必要がある機能f2(他のファイル内)を定義したい場合、私は私が私のf2.mファイルでaddpath()...\f1.mを使用することができ、私はmain.mに使用するファイルf1.mに機能f1を定義しましょうか?または、f1f2に呼び出す最良の方法は何ですか?

答えて

0

起動時に実行するstartup.mファイルを作成する必要があります。現在のディレクトリにあります。これには、追加する必要のあるすべてのパスが含まれている必要があります。

だからあなたメートルのファイルは、次のようになります。

startup 
f1 
f2 
0

それを行うための最善の方法は、同じフォルダであなたの機能を有する場合、またはフォルダで、フォルダを追加する必要があります。 f1.mf2.mf3.mを別々のフォルダに置くと、すべての機能に対してaddpathを呼び出す必要があります。フォルダ「myfunctions」を持っている場合は は、あなたがする必要があるすべてはあなたのメインスクリプトの同じフォルダであなたの機能を持つ「myfunctions」という名前のフォルダを持っている場合は、あなただけのパスにそのフォルダを追加する必要がaddpath('...\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 

を持っているあなたはそれがフォルダ

+0

私はこうすると、関数名f1がMATLABのファイル名: 'myfunctions' – Arthurim

0
にする必要があり、ファイルを addpathを使用することはできません

matlabが開いているフォルダにすべてのファイルを保存します。あなたは明示的にmatlabに指示してファイルのために指示されたディレクトリを検索するためにaddpathを必要としません

関連する問題