2016-10-14 25 views
0

関数round関数はスカラーを取り、それを操作できます。しかし、それは配列を取って、それを期待どおりに操作することもできます。スカラー入力をユーザー定義関数の配列入力に一般化する

>> round(2.3) 

ans = 

    2 

>> round([2.3,3.4]) 

ans = 

    2  3 

同様に関数を持っていて、配列の入力に "期待される"方法で機能したいと思っています。スカラー入力に対してはうまくいきます。私はforループを実行し、配列の各要素で自分の関数を評価することができますが、他にどのようなスマートな方法がありますか?

function [a,b]=func(c,d,e,f) 

と私はd,e,f持っているが、私はcのいくつかの値に関数を評価したい:さらに具体性については

、私が持っている -

g=[]; 
for i=1:10 
    [a,b]=func(c(i),d,e,f); 
    g=[g;[a,b]]; 
end 

私は完全にはわかりませんどのように私はそれを使用する必要がありますと信じてarrayfunを適用する。

答えて

0

あなたが探しているのはarrayfunの機能です。 ここでのドキュメントです:http://www.mathworks.com/help/matlab/ref/arrayfun.html

言ってやるが、私はこの機能を持っている:私は行列を持って

function res = myTest(a,b) 
size(a) % for checking that we work on each element 
res = a+1; 
res = res +b; 

私は適用したい

A = magic(3); 

MYTESTの各要素と同じA

A1 = arrayfun(@(x) myTest(x,2),A) 

私が見

+0

(Xはコンマの後に宣言された配列の要素で置き換えられる)、私は私の質問では、あなたの提案に基づいていくつかのクエリを追加しました。手伝ってくれますか? –

関連する問題