PCs=importdata('PostalCodes.csv'); %// import data
PostalCodes = cell(numel(PCs,2)); %// create storage
IDs = cell(numel(PCs,2));
for ii = 1:numel(PCs)
tmp = strsplit(PCs{ii,1}, ','); %// split on comma
PostalCodes{ii,1} = tmp{1};
IDs{ii,1} = tmp{2};
end
[IDs,idx] = sort(IDs); %// sort on ID
PostalCodes = PostalCodes(idx); %// sort PCs the same way
PostalCodes = cell2mat(PostalCodes); %// go to matrix
[IdNums,~,tmp2] = unique(IDs); %// get unique IDs
tmp3 = [1; find(diff(tmp2)); numel(IDs)]; %// create index array
for ii = 1:numel(tmp3)-1;
PostalCode(ii).IDs = PostalCodes(tmp3(ii):tmp3(ii+1),:); %// store in struct
end
其实你不希望单独的阵列,因为that's very bad practise,所以我把一切都放在一个结构为您服务。现在,可以通过简单地输入访问结构:
PostalCode(1).IDs(2,:)
ans =
BS2 9TL
其中(1)
高炮PostalCode
和IDs
对应于ID(其在IdNums
实测值),和所述(2,:)
拨弄出对应于ID IdNums(1)
第二邮政编码。