[EDIT: Mon May 23 16:36:16 UTC 2011 – Reformat – MKF]
Hello, I am having problems with my for loop statement (see code at bottom). I'm trying to overwrite a zeros matrix (A) with 1's if it meets certain criteria from another matrix (M). It essentially needs to look at M(:,1) and put ones in each row of A (for each numatch) according to the if conditions. Instead of putting ones in the right place, it puts in all ones up to the last numatch row. Here is the code:
%creates A
nx = 5;ny = 6;nullnx = zeros(nx,2);nullny = zeros(ny,2);nullnx(:,1)=[1:nx];nullny(:,2)=[1:ny];if nx >= ny; numatch = nx;else numatch = ny;end;if nx >= ny; x = repmat(nullnx(:,1),nx,1); matchx = sort(x); mx = cat(2, matchx, x);else x = repmat(nullny(:,2),ny,1); matchx = sort(x); mx = cat(2,matchx,x);end;M = [nullnx;nullny;mx];A = zeros(nx+ny+numatch,nx+ny+numatch);%here is where I need help
for i = 1:numatch; for a = 1:length(M); for b = 1:length(A); if M(a, 1)== i; A(i,b)=1; end; end; end;end;
Any help is most appreciated
Best Answer