Skip to content

Instantly share code, notes, and snippets.

@sjaffe
Created March 20, 2012 20:14
Show Gist options
  • Save sjaffe/2140821 to your computer and use it in GitHub Desktop.
Save sjaffe/2140821 to your computer and use it in GitHub Desktop.

Revisions

  1. sjaffe renamed this gist Mar 20, 2012. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. sjaffe created this gist Mar 20, 2012.
    68 changes: 68 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,68 @@
    %Generate neighbors and relations matrix for each MSA
    %system(rename msa*.mat msa.mat);
    %filename=strcat('\nsf\usr\S\sjaffe\Work\Segregation\Matlab\msa', str2int(job_instance))
    missing=importdata('/nfs/home/S/sjaffe/Work/Segregation/Matlab/missing.txt');
    %16 34
    path(path, '/nfs/projects_nobackup/s/sjaffe')
    path(path, '/nfs/home/S/sjaffe/Work/Segregation/Matlab')
    cd '/nfs/projects_nobackup/s/sjaffe'

    for file_num=10:52
    file_num
    job_instance=missing(file_num)

    filename=strcat('msa_datafiles/msa', int2str(job_instance), '.mat');
    load(filename)
    lat=data(:,2);
    lng=data(:,3);
    race=data(:,4);
    pop=data(:,5);
    racepop=data(:,6:9);
    numblocksinmsa=length(lat);
    clear data

    distance=1;

    % near=zeros(numblocksinmsa);
    % for i=1:numblocksinmsa
    % for j=(i+1):numblocksinmsa
    % if abs(lat(i)-lat(j)) <= .03*distance && abs(lng(i)-lng(j)) <= .03*distance
    % d=6378.1*acos(sin(2*pi*lat(i)/360)*sin(2*pi*lat(j)/360)+cos(2*pi*(lng(i)-lng(j))/360)*cos(2*pi*lat(i)/360)*cos(2*pi*lat(j)/360));
    % if d <= distance
    % near(i, j)=1;
    % near(j,i)=1;
    % end
    % end
    % end
    % end
    % r_matrix=bsxfun(@rdivide, near, sum(near,2));
    index=zeros(1, 2);
    z=1;
    for i=1:numblocksinmsa
    for j=(i+1):numblocksinmsa
    if abs(lat(i)-lat(j)) <= .03*distance && abs(lng(i)-lng(j)) <= .03*distance
    d=6378.1*acos(sin(2*pi*lat(i)/360)*sin(2*pi*lat(j)/360)+cos(2*pi*(lng(i)-lng(j))/360)*cos(2*pi*lat(i)/360)*cos(2*pi*lat(j)/360));
    if d <= distance
    index(z,:)=[i, j];
    index(z+1,:)=[j,i];
    z=z+2;
    end
    end
    end
    end
    row=nonzeros(index(:,1));
    column=nonzeros(index(:,2));
    numzeros=numblocksinmsa^2-length(row);
    near2=sparse(row, column, ones(length(row),1), numblocksinmsa, numblocksinmsa,numzeros);
    r_matrix2=bsxfun(@rdivide, near2, full(sum(near2,2)));
    %numnear=sum(near,2);
    %r_matrix=near./repmat(numnear, 1, numblocksinmsa);

    filename=strcat('relation_files/r_matrix', int2str(job_instance));
    save(filename, 'r_matrix', 'distance', 'msa', '-v7.3');
    clearvars -except missing;
    end