以下をワンライナーで書いてもいいですか?
x = [1,3,5,7,9]
res = zeros(1,size(x,2));
for i=1:size(x,2);
res(i) = foo(x(i));
end;
foo 関数が期待どおりに配列を処理しないと仮定します。私の場合、引数として配列を指定した場合でも、foo はスカラーを返します。
たとえば、Python では、次のようになります。
x = [1,3,5,7,9]
res = [foo(y) for y in x]
以下をワンライナーで書いてもいいですか?
x = [1,3,5,7,9]
res = zeros(1,size(x,2));
for i=1:size(x,2);
res(i) = foo(x(i));
end;
foo 関数が期待どおりに配列を処理しないと仮定します。私の場合、引数として配列を指定した場合でも、foo はスカラーを返します。
たとえば、Python では、次のようになります。
x = [1,3,5,7,9]
res = [foo(y) for y in x]
arrayfun必要なものです。例えば:
res = arrayfun(@foo, x)
fooは常にスカラーを返すため、上記は機能し、とres同じ次元のベクトルにもなりますx。fooが可変長出力を返す場合は、 への呼び出しでまたはに設定'UniformOutput'する必要があります。出力は配列になります。false0arrayfuncell