Asked by Austin
on 18 Jun 2013

I am trying to use this

xDataNumbers = [2.5 5 7 8 11.5]

as the datanames for a fints

tsobj = fints(dates, data, datanames)

so - the question is: How do I convert a vector with numbers into a "Cell array of data series names" in the form nn.n?

Thanks. A

Answer by Kye Taylor
on 18 Jun 2013

Accepted answer

The third input to the `fints` function is a cell array of strings that can be valid MATLAB identifiers. That is, the strings cannot start with numbers and can only contain letters, numbers, and the underscore. As a workaround, you could do this

% convert numeric array to cell, and convert all contents to strings dataNamesInput = cellfun(@num2str,num2cell(xDataNumbers(:)),'uniformoutput',false);

% make sure first letter is not numeric (it will be 'x') dataNamesInput = cellfun(@(s)['x',s],dataNamesInput,'uniformoutput',false);

% remove periods and replace with underscores dataNamesInput = regexprep(dataNamesInput,'\.','_');

and use `dataNamesInput` as the third input. Someone may suggest using the `genvarnames` function, but it will replace periods with '0x2'. You may prefer that. In any case, you'll still need the first line of code above that converts numeric array to cell of strings.

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 3 Comments

## Jan Simon (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/79422#comment_155598

It is not clear what this exactly means:

## Austin (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/79422#comment_155631

I have an array

that I want to use as datanames for the third parameter in

The format should have max width of 5 with 1 decimal place (%5.1f I think). Another issue is that the datanames cant start with a number, so it's ok to prepend something like 'S: '

Oh, wait, can the dataname strings even contain any numbers??

## Matt Kindig (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/79422#comment_155632

What is the desired output for datanames?