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.
Sonia's matlab code
%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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment