在有人问之前,这是对较早问题的重新发布,但我无法删除它,因为它有答案,所以我正在修改它,希望 Daniel R 能回答它!
strfind
我有一个数字网格,我想从 8 个方向中的任何一个方向读取一串数字。我已经设法正常工作的非对角线,这是我一直在努力解决的对角线(除了downRight
Daniel R 之前帮助我解决的问题,我非常感谢)!
这是代码:
A = [5,16,18,4,9;
9,10,14,3,18;
2,7,9,11,21;
3,7,2,19,22;
4,9,10,13,8]
for r = 1:5
for diags = -5:5
downRight = strfind(diag(A,diags)', [10,9,19]);
if isempty(downRight) == 0;
rowOfFirstNum = downRight(1)+max(-diags,0);
columnOfFirstNum = downRight(1)+max(diags,0);
end
downLeft = strfind(diag(rot90(A),diags)', [11,2,9]);
if isempty(downLeft) == 0;
%rowOfFirstNum =
%columnOfFirstNum =
end
upLeft = strfind(diag(rot90(A,2),diags)', [19,9,10]);
if isempty(upLeft) == 0;
%rowOfFirstNum =
%columnOfFirstNum =
end
upRight = strfind(diag(rot90(A,3),diags)', [3,7,14,4]);
if isempty(upRight) == 0;
%rowOfFirstNum =
%columnOfFirstNum =
end
end
end
downRight
有效,但我不确定如何让其他人正常工作。请注意,要测试每个方向,需要注释掉其他 3 个方向。
谢谢你。