0

特定の関数を 4 回実行し、そのたびに新しい引数を渡し (配列から取得)、反復ごとに結果を別の配列に保存する必要があります。

これが私の機能です:

function VD (x,y,z)
(2*x*y*z)/1000

値を持つ私の配列は次のとおりです。

x = [1,2,3]
y = [4,5,6]
z = [7,8,9]

ここで私は間違いを犯しています:

for i=1:4
result{i} = VD(x(i),y(i),z(i));
end

間違い -添え字のインデックスは、実数の正の整数または論理値のいずれかでなければなりません。

各値が VD 関数の戻り値の結果である 4 つの値を持つ配列の結果が必要です。

それが明確であることを願っています。

ありがとうございました。

4

2 に答える 2

1

ループを完全に使用しないようにすることができます。

x = [1,2,3]
y = [4,5,6]
z = [7,8,9]

result = 2 * x .* y .* z ./ 1000;
于 2013-08-22T23:04:23.370 に答える
1

関数には戻り値がありません。結果を画面に出力するだけです。関数定義を次のようなものに置き換えます

function r = VD(x,y,z)
r = (2*x*y*z)/1000;

役立つかもしれません。ただし、この特定のタスクを実行するためのはるかに効率的な方法があります。ベクトル化の方法に関する Gordon の回答を参照してください。

于 2013-08-22T23:10:44.893 に答える