clc,clearprompt = 'Give a matrix of 4x4: ';x = input(prompt);[m,n] = size(x);M=magic(4);f=sum(M);g=sum(M')'; if m~=4 | n~= 4 disp('The matrix is not a 4x4 please start again and fix the error.') else for i=1:16 if x(i)<=0 disp('Error one of the numbers put in was either a zero or negative, Fix it and start over.') if sum(x)~=f && sum(x)~=g disp('This is not a magic matrix, please start over, and do it right. ') end end end end disp(x) disp(sum(x)) disp(sum(x')')
Made a some changes to make it a bit easier, my question is basically why does 'sum(x)~=f && sum(x)~=g' not seem to be working, 4x4s that arent magic(4) seem to still be getting passed, and not denied.
Best Answer