来自我以前的编码,这是我的最新编码。。我想把原来2的方向改为右方向&同时在3x3矩阵中出现一个新的数字2
m=zeros(3); m(randi(numel(m)))=2
ans=
0 0 0
0 0 0
2 0 0
这是最初2的预期随机答案之一,然后我选择方向
case 'right'
%number= find(m);
if (m>=7);
circshift(m,[0 0]);
m_subset = setdiff(find(m),numel(m));
m(randi(numel(m))) = 2
count=0;
elseif (m>=4) | (m<=6);
circshift(m,[0 1]);
m_subset = setdiff(find(m),numel(m));
m(randi(numel(m))) = 2
elseif (m<4);
circshift(m,[0 2]);
m_subset = setdiff(find(m),numel(m)) ;
m(randi(numel(m))) = 2
else
msgbox('next');
end
预期的答案是
0 0 0
0 2 0
0 0 2
其中原始数字2向右移动&出现随机2。但是上面的编码并没有使原来的数字改变方向。
当您调用circshift
时,这不会改变输入m
。在调用circshift
之后,您需要重新分配给m
。
m = circshift(m, [0, 2]);
同样,对于条件句,您应该比较number
而不是m
。不过,我将使用find
的第二个输出来计算列并使用它。
[r,c] = find(m);
%// If column 1
if c == 1
%// do thing
elseif c == 2
%// do other thing
else
%// do yet another thing.
end