Date: Jan 19, 2013 4:10 PM
Author: dpb
Subject: Re: Help using textscan or sscanf

On 1/16/2013 11:30 AM, Kevin Ellis wrote:
...

> 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.

...

I only got access to Statistics Toolbox within last couple of weeks so
have virtually no proficiency w/ the DATASET object but...you can do
essentially my previous solution (which was correct except I forgot and
used (end:-9:end) instead of (end-8:end) for the length subscript to get
9 characters to append) from a dataset as--

>> a={'154045001' '926665001' '615017' '1976936151' '801700'
'4506702001'}';
>> D=dataset({a,'acct'});
>> c=char(D.acct);
>> D.newaccdt=cellstr([repmat('4412',6,1) c(:,end-8:end)])

D =
acct newaccdt
'154045001' '441254045001'
'926665001' '441226665001'
'615017' '441215017'
'1976936151' '4412976936151'
'801700' '441201700'
'4506702001' '4412506702001'
>>

I'm pretty sure if you worked at it and w/ more proficiency in the
dataset methods you could probably do it w/o the temporary explicit
array c above.

But clearly you don't need two subsets and sscanf() and all the
rigamarole you're presently going thru...

--