-2

問題は、数学関数を受け取りたいということです。そして、プログラムが実行されるまで、いくつあるかわかりません。

それが実行されるとき、n私は私が受け取るつもりのいくつかの関数を要求し、それは入力からそれらを保存し始めます。

これまでのところ私はこれを持っています

function test()  
n = input('number of equations?');  
v = [1:n]  
%in an ideal world, this ^ here would allow me to put a string in each position but  
% they are not the same type and I understand that.. but how can I build a vector for saving my                functions  
%I want a vector where I can put strings in each position that is what I need   
for i=1:n  
x = input('what is the function?','s');  
v(i)=x  
end  
v   
%this would be my vector already changed with a function in each position.  
end  
4

1 に答える 1

2

異なる長さの文字列を格納する場合は、セル配列を使用します。

v = cell(1,n);
for i=1:n   
    v{i} = input('what is the function?','s'); #% note the curly braces
end  

これらを関数として使用するには、str2funcを使用します。

for i=1:n
    fh{i} = str2func(v{i});
end

fhは、ユーザー入力文字列によって定義された関数へのハンドルを含むセル配列になりました。

于 2012-12-27T02:38:02.437 に答える