0

x と y を含む 2x1 行列を受け取る関数を書きたいのですが (スカラー入力なし)、それは可能ですか? 私は以下のように試しました:

function [d] = dist(A,B)

d=sqrt(((A(1)-B(1))^2+(A(2)-B(2))^2));
end

A と B は 2*1 行列です。関数の入力としてベクトルを配置する方法??

4

2 に答える 2

1

2 つのベクトル (それぞれ 2 つの要素を持つ A と B があるため) を 1 つのパラメーターとして渡したい場合は、2x2 行列または 4x1 ベクトルを作成して渡すことができます。または、セル配列 (これにより、もう少し柔軟性が得られます)。例:

A = [1 2];
B = [4 5];

C = [A; B];

d = myDistance(C);

function m = myDistance(x)
  dxy = diff(x); % do both x(2,1) - x(1,1) and x(2,2) - x(1,2) in one operation
  m = sqrt(sum(dxy.^2));

あるいは、 and を2つの別々のパラメーターとして渡すAB(読みやすさから非常に理にかなっています)、質問で説明した方法で機能するはずです...

于 2013-09-18T12:54:49.583 に答える