MATLABベクトル化を使用して2つのベクトルから特定の行列を生成する効率的な方法があるかどうかを知りたかったのです。ベクトル化を使用して2つのベクトルから特定の行列出力を得る
は、ベクトルはU、V、A1、A2、A3、B1、B2、B3は、いくつかの実数である
x = [u v]
y = [a1 a2 a3 b1 b2 b3]
あると仮定します。
Iは、これらのベクターを使用して生成したい2列の行列は、一般に
M = [u a1;
u a2;
u a3;
v a1;
v a2;
v a3;
u b1;
u b2;
u b3;
v b1;
v b2;
v b3]
あり、xの長さは何とyの長さとすることができる。ここで3の倍数であるコードであります私は今持っているが、私はいくつかのより良い方法(おそらくforループの使用を避けること)があっべきだと思います:
M = [];
Y = reshape(y, 3, []);
for j = 1:size(Y, 2)
[a, b] = meshgrid(x, Y(:, j));
L = [a(:) b(:)];
M = [M; L];
end
これは非常にあいまいです。あなたのマトリックスの実際の要件は何ですか?どのように一般的にこれをしようとしていますか?あなたはこれを自分で解決するために何かをしましたか? –
問題の説明をより明確に編集しました。 – adas