MATLAB Answers

How can I match multiple contents of an array to a separate single array?

1 view (last 30 days)
George Penny
George Penny on 25 Apr 2016
Edited: John BG on 26 Apr 2016
I have a .csv file where multiple postcodes (characters and numbers) correspond to a unique ID number (also characters and numbers).
e.g
  • BS2 9TL, E00073143
  • BS2 9TB, E00073143
  • BS2 9XJ, E00073143
  • BS2 8AT, E00073144
  • BS2 8TY, E00073144
  • BS2 8UA, E00073144
  • BS2 8UG, E00073144
I need to create a new array for each unique ID number that stores the respective postcodes. The amount of postcodes for each ID number is not the same every time.
The file contains 9010 postcodes and 1258 ID numbers.
Can anyone show me how to go about doing this?
Many thanks!

  0 Comments

Sign in to comment.

Answers (2)

Meade
Meade on 25 Apr 2016

  1 Comment

George Penny
George Penny on 25 Apr 2016
Hi, I have understood the unique function can be used to remove duplicates. But how can I separate each group of postcodes to the unique ID numbers I have now?

Sign in to comment.


John BG
John BG on 26 Apr 2016
Edited: John BG on 26 Apr 2016
If you really have postcodes along a .csv spreadsheet row, and the codes along another row, then you can do the following:
[a postcode]=xlsread('postcodes1.csv',1,'A1:A7')
[a bcode]=xlsread('postcodes1.csv',1,'B1:B7')
postcode=strtrim(postcode)
bcode=strtrim(bcode)
L_postcode=length(postcode)
[D,di,dj]=unique(bcode)
L_bcode=length(D)
for k=1:L_bcode
D{k}=[D{k} postcode(find(dj==k))']
end
Now you have all basic unique codes on the first row of the cell D.
the second and consecutive elements in each line (row) of D are all post codes with same basic code.
Further processing could be:
for k=1:L_bcode
str1=D{k,:}
% str1(k,1) contains one basic unique code
% str1(k,2) str1(k,2) .. str1(k,end) contains all the post codes
% with same basic code in str1(k,1)
end
If you find this answer of any help solving your question,
please click on the thumbs-up vote link,
thanks in advance
John

  0 Comments

Sign in to comment.

Sign in to answer this question.