Date: Jan 16, 2013 12:30 PM
Author: Kevin Ellis
Subject: Help using textscan or sscanf

Hello,

My problem is very simple, but I cannot find an efficient way to accomplish it. Here is an excerpt of my array (which is one column of a dataset):

Subset001.AccountNumber(1:6,:)

ans =

'154045001'
'926665001'
'615017'
'1976936151'
'801700'
'4506702001'

I am trying to create a new account number in the form of a string. I need to append '4412' to the the last 9 digits of the above account numbers. So for the results is:

'4412154045001'
'4412926665001' - Account Numbers have 9 digits so this is easy
'4412615017' - Only has 6 digits so take the whole account number
'4412976936151' - Has 10 digits so drop first and append to '4412'
etc.

So my problem is difficult in that I need to use sscanf to find the last 9 digits of the account number (even if it has less or more) and then use strcat to append '4412' to the beginning. A few poor attempts:

strcat('4412',sscanf(Subset001.AccountNumber{6},'%*c%9c',1))
strcat('4412',sscanf(Subset001.AccountNumber{6},'%s,[1,9]))

These obviously do not work and I can seem to find a metacharacter in the sscanf documentation for indicating a way to start at the end of the string count back 8 characters and return the result. Does it sscanf always have to read left to right? Any help would be much appreciated. Thanks.

Kevin Ellis