如何检查我的5x5矩阵左上角到右下角的1的数量

时间:2014-09-24 05:49:02

标签: matlab

input = input('Please enter a number between 1 to 5: ');
counter = 0;    
mat= zeros(5,5)

if input == 1 
   while mat(1)~= 1 && mat(7)~= 1 && mat(13)~= 1 && mat(19)~= 1 && mat(25) ~= 1  
      mat= randi (10,5); 
      counter = counter +1;
   end
   a = mat
   fprintf('%d matrices were generated to find a good one\n', counter )
end

我可以让系统检查对角线路径,只包含1' 1'满足要求。但是,

如何让系统检查对角线路径是否包含2或3或4' 1'?

1 个答案:

答案 0 :(得分:1)

您可以使用diag。要查找对角线上有多少元素是4,您可以这样做:

sum(diag(A) == 4)

如果您想知道它是否包含2个1,那么您可以:(sum(diag(A) == 1) == 2)

diag返回矩阵的对角线。 diag(A) == 4返回逻辑向量,其中对角线为4,其他位置为0。通过对所有1的求和,您可以找到4的总数。