3

騎士ツアーでの騎士の位置を示すマトリックスがあります。最初に数字を順番に見つけて、その位置を小さなボード X などに出力する方法を探しています。

X=[1 3; 4 2]

出力

A=[1 2 3 4]

b= [1 1; 2 4; 1 2; 1 3] 

このようなもの b は行列内の A の値の位置です

これを行うことについて私が考えることができる唯一の方法は、find (n)whereのシリーズ関数を使用してn=1..64から結果を連結することです

次に、この情報を使用して、線/ベクトル プロットで移動のプロットを作成したいと考えていますが、これを行う方法もわかりません。

ありがとう、テッサ

4

1 に答える 1

3

を使用findして、訪問したボード座標を特定し、移動の順序に従ってそれらを並べ替えることができます。

%# find the visited coordinates
[rows,cols,moveNumber]=find(A);

%# find out how to reorder the positions so that
%# the moves are in the right order
[~,sortIdx] = sort(moveNumber);

%# plot the moves
figure
plot(rows(sortIdx),cols(sortIdx),'-o')
于 2013-02-17T14:10:03.097 に答える