我正在尝试制作一个简单的脚本,可以决定两个棋盘是相似还是相同或不同。如果它首先是相同的大小(例如3x3),我必须测试它,因为如果不是我不应该首先运行测试。我还必须对第一块电路板进行垂直和水平翻转,然后将它们与第二块电路板进行比较,看看两个电路板中是否有任何一个与第二块电路板匹配。 这是我到目前为止的代码:
function similar = symmetric_queens(b1, b2) %b1 is table 1 and b2 is table 2
similar= true;
h1= flipud(b1); %flipping about horizontal axis
v1= fliplr(b1); %flipping about vertical axis
if
b1==b2;
imshow('The boards are identical') %because they are exactly the same
end
if
size(b1)==size(b2) %if they are of equal size test if horizontal flip= second board
h1=b2
imshow('true')
else
v1=h2 %test if vertical flip = second board
imshow('true')
else %in these two codes I am trying to check make the function stop if the boards arent the same size
size(b1)>size(b2)
similar = false;
return;
else
size(b1)<size(b2)
similar = false;
return;
end
end
我认为有很多错误会导致我的代码不能解决问题,任何帮助都会受到高度赞赏。 我很抱歉,如果我没有发布此权利,或者我做错了,因为这是我第一次在这里发帖。
提前致谢!
答案 0 :(得分:0)
我会想到做同样事情的有点组织代码 -
function similar = symmetric_queens(b1, b2) %b1 is table 1 and b2 is table 2
%%// Check for equal sizes
if ~isequal(size(b1),size(b2))
similar = false;
return;
end
if isequal(b2,b1) %%// Check for perfect match
disp('The boards are identical');
similar = true; %%// What to return for - similar value when they are identical? Assumed - true
elseif isequal(b2,fliplr(b1)) || isequal(b2,flipud(b1)) %%// Check horizontal and vertical flip
disp('The boards are similar');
similar = true;
else
similar = false;
end
return;
注意:我不确定您使用imshow
的原因。也许你的意思是显示文字?这就是代码的作用。