私はこのような複数の依存関数をコード内で呼び出す必要があります。複数の従属関数を呼び出す方法は?
function [k11,k12] = k_fun()
% syntax is : function [outputs] = function-name(inputs)
a=2.0;
k11 = quad(B1,B1,a); %error
% For k11, I want to call function b_fun and select only B1,B2 to pass to function quad.
k12 = quad(B1,B2,a);
endfunction
function [B] = b_fun(x)
B1 = -0.5+x;
B2 = 2.0*x;
B3 = 0.5+x;
B=[B1,B2,B3];
endfunction
function [value] = quad(B_i,B_j,a)
value=0
points = [0.57,-0.57];
wt=[1.0,1.0]
for (ct=1:1:2)
value = value + (B_i(points(ct))*B_j(points(ct))*a)*wt(ct);
end
endfunction
私は関数k_funを実行します。 a=2.0
の後はk11行に行きます。 k11
については、B1
とB2
をb_fun()
から、quad()
に渡します。 では、関数が評価されます。
私は何をしようとしています k12 = B1(0.57)*B2(0.57)*a*1 + B1(-0.57)*B2(-0.57)*a*1
これらの値、±0.57は、関数quad
に入っています。私はどのようにB1
とB2
を%error
の行に渡すのか分からない。私は依存する関数を呼び出すことに悩まされています。私は、元のプログラムがこのようになっているので、同じプログラムフォーマット(それぞれの関数で定義された変数)を維持したいと思っています。後でこのプログラムをC++に翻訳したいので、特定のプログラミング言語の代わりにプログラミング言語の標準機能を使用したいと考えています。
ところで、私はOctaveでプログラムを開始しました。だから、endfunction
の代わりにend
がMATLABにあります。
3行目は、問題と思われます。しかし、この引数は 'quad()'に渡されます。 – user7423098
@ user7423098申し訳ありませんが、気付かなかった。オプションで更新。 – Suever