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 行列です。関数の入力としてベクトルを配置する方法??
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 行列です。関数の入力としてベクトルを配置する方法??
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つの別々のパラメーターとして渡すA
とB
(読みやすさから非常に理にかなっています)、質問で説明した方法で機能するはずです...