0

索引付けの問題を解決するための支援が必要です。割り当てられた問題の状態: 2 つの行列 (x と y) は、行列 A から行列 B を形成するための座標を与えます。x と y の指定された座標で A の値を含む行列 B を作成します。例えば:

x = [1 1 1; 2 2 1]
y = [1 2 1; 3 2 4]
%This would read as (1,1),(1,2),(1,1),(2,3),(2,2),(1,4)
% Given matrix: 
A = [6 7 8 9; 10 11 12 13];
%This would give us this answer for B (using the coordinate scheme above): 
B=[6 7 6; 12 11 9];

find関数を関数と組み合わせて使用​​する必要があると思いますが、それを実際のsub2indコードに変換する方法が 100% わかりません。私が考えることができる唯一のことは、次のようなことをすることです:

B=((x(1),(y(1)), (x(2),y(2)).......

しかし、それはランダムに生成された行列ではなく、上記で定義された行列に対してのみ機能します。サイトで同様の問題を探してみましたが、見つかりませんでした。あなたの助けは本当にありがたいです!

4

1 に答える 1

1

およびAの値から必要な行と列が行列にあることを確認する必要があるため、ランダムに生成された行列に対しては実行できません。xy

この場合、次のように記述できます。

for i=1:length(x(:))
   B(i)=A(x(i),y(i));
end
B=reshape(B,size(x));
于 2013-07-07T20:35:59.133 に答える