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 回答